Windows下安装MySQL 5.7.17压缩版中遇到的坑
首先下载最新的mysql 5.7.17 community 压缩版 for windows 64-bit:
官方下载地址:
然后解压到安装目录(如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:
总结
以上就是这篇文章的全部内容了,希望自己的一些经验能帮到同样遇到这些问题的朋友们,如果有疑问大家也可以留言交流。
下一篇: 蛋炒饭怎么做好吃,先炒饭还是先炒蛋!
推荐阅读
-
Windows下安装MySQL 5.7.17压缩版中遇到的坑
-
windows 10 下安装mysql 5.7.17的简单笔记
-
Windows下安装MySQL 5.7.17压缩版中遇到的坑
-
解决Windows环境下安装 mysql-8.0.11-winx64 遇到的问题
-
Win10环境下安装Mysql5.7.23问题及遇到的坑
-
解决Windows环境下安装 mysql-8.0.11-winx64 遇到的问题
-
Windows环境下安装 mysql-8.0.11-winx64 遇到的问题解决办法
-
win64位系统下安装mysql-5.7.17遇到的问题及解决办法
-
Mysql5.7解压缩版本在windows下的安装
-
Win10环境下安装Mysql5.7.23问题及遇到的坑