Windows下安装MySQL 5.7.17压缩版中遇到的坑
作者:瓜园耕读 发布时间:2024-01-21 17:06:54
首先下载最新的MySQL 5.7.17 Community 压缩版 for Windows 64-bit:
官方下载地址:http://dev.mysql.com/downloads/mysql/
然后解压到安装目录(如C:\Prog\MySQL\)。接下来复制my-default.ini为my.ini,修改my.ini如下:
[mysql]
default-character-set=utf8mb4
[mysqld]
basedir = C:\Prog\MySQL
datadir = C:\Prog\MySQL\data
port = 3306
max_connections=200
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
default-storage-engine=INNODB
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
之后用“管理员身份”打开cmd——“管理员身份”这很重要,进入安装目录安装MySQL服务:
C:\Prog\MySQL\bin>mysqld install
Service successfully installed.
然后启动MySQL服务:
net start mysql
刚开始以为就这么简单,可是幺蛾子的却报错了:
如果是通过Windows系统的“服务”启动,则提示:
问题出得实在是心塞不已,查了许久,原来是:
If you installed MySQL using the Noinstall package, you may need to initialize the data directory:
Windows distributions prior to MySQL 5.7.7 include a data directory with a set of preinitialized accounts in the mysql database.
As of 5.7.7, Windows installation operations performed using the Noinstall package do not include a data directory. To initialize the data directory, use the instructions at Section 2.10.1.1, “Initializing the Data Directory Manually Using mysqld”.
具体可参考这两个链接:
2.3.5.4 Initializing the Data Directory
2.10.1.1 Initializing the Data Directory Manually Using mysqld
原因找到了,那我们来手动Initialize Data Directory一下啊:
mysqld --defaults-file=C:\Prog\MySQL\my.ini --initialize-insecure
然后依次:
net start mysql
mysql -u root -p
熟悉的mysql>应该就出来了。
希望对遇到类似坑的人有所帮助,究其原因就是5.7.7及以后的压缩包版本,更改为需要手动Initialize Data Directory了。
技无一招鲜,坑要一路填。
我的环境:
Windows 10 64-bit
MySQL Community Server 5.7.17 for Windows (x86, 64-bit), ZIP Archive
(分割线,以上MySQL 5.7.17就算安装完毕了。)
最后手贱,搞个SQLAlchemy测试MySQL:
"""SQLAlchemy操作MySQL测试"""
from sqlalchemy import create_engine, Table, Column, Integer, MetaData
from sqlalchemy.dialects.mysql import CHAR
from sqlalchemy.sql import select
ENGINE = create_engine('mysql+pymysql://root:@127.0.0.1:3306/test?charset=utf8mb4')
CONN = ENGINE.connect()
USERINFO = Table('userinfo',
MetaData(),
Column('id', Integer, primary_key=True, autoincrement=True),
Column('name', CHAR(24, charset='utf8mb4')),
mysql_charset='utf8mb4')
USER = select([USERINFO])
RESULT = CONN.execute(USER)
for row in RESULT:
print(row.name)
RESULT.close()
CONN.close()
结果发现输出结果的同时有个报警:
Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 480")
这是怎么回事呢?要说各种字符集设置都检查n次,应该没啥问题了......
无数次思考、试验中,发现了啥?发现了啥?发现只要show variables like '%charac%';一下,就会出来一个告警!
再来看看这个这个Warning:
不正是它吗?MySQL的Bug莫不是?!OMG!
好吧!重回MySQL 5.6.35!
告警不见了!
接着重新建库、建表,测试程序:
这下OK了,最终还是兜了一圈回到了MySQL 5.6.35。
安静地写Python,没人吵,也不像前端撕来撕去的——岁月静好、Python静好。
最后赞一下Visual Studio Code:
来源:http://www.2gua.info/post/67


猜你喜欢
- 本文实例讲述了MYSQL锁表问题的解决方法。分享给大家供大家参考,具体如下:很多时候!一不小心就锁表!这里讲解决锁表终极方法!案例一mysq
- //关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=jav
- 需求最近接到一个任务,要把一批文件中的十几万条JSON格式数据写入到Oracle数据库中,Oracle是企业级别的数据库向来以高性能著称,所
- 前言前面几个章节我们学习了对于普通文件的操作,比如说文件的创建、复制粘贴、裁剪粘贴、文件名的重命名、删除等等。另外还学习了一些基本练习,如何
- 本文实例讲述了MySQL数据库优化之分表分库操作。分享给大家供大家参考,具体如下:分表分库垂直拆分垂直拆分就是要把表按模块划分到不同数据库表
- [code]<script> var a=4.2343; alert(a.toFixed(3)); </script>
- 在这系列视觉设计的文章间隙插一篇字体单位的文章。前文说了,字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按c
- import csvfor line in open("test.csv"):name,age,birthday = l
- MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能
- Pandas如何将带有字符串元素的列拆分为多个列。使用以下字符串的方法。str.split():用定界符分割str.extract():按正
- 前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视)
- 事情是这样的五一假期第一天值班隔壁有点喜欢的小姐姐突然跑过来跟我聊天“微信账号切换来切换去 特别麻烦”“怎么能同时打开多个呢?”我心想,你有
- 本文为大家分享了mysql5.7.17安装配置方法,供大家参考,具体内容如下1、下载 MySQL 数据库的安装包:mysql-5.7.17.
- 在存储过程中,请问如何判断所指定表的字段的类型?由于表和视图的每一列在SYSCOLUMNS表中都有详细资料,所以,我们只管从中取用来即可,很
- 一、基本数据类型前缀数据类型数据类型简写ArrayarrBooleanblnBytebytCharchrDateTimedtmDecimal
- CONVERT将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在SQL Server中将日期格
- 这篇文章主要介绍了Python实现word2Vec model过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 在Python中函数可以作为参数进行传递,而也可以赋值给其他变量(类似Javascript,或者C/C++中的函数指针);类似Javascr
- wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。首
- type指示type要使用的验证器。可识别的类型值为:string:类型必须为string。type 默认是 string// 校验stri