首先下载最新的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服务:
然后启动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一下啊:
然后依次:
熟悉的MysqL>应该就出来了。
希望对遇到类似坑的人有所帮助,究其原因就是5.7.7及以后的压缩包版本,更改为需要手动Initialize Data Directory了。
技无一招鲜,坑要一路填。
我的环境:
(分割线,以上MysqL 5.7.17就算安装完毕了。)
"""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',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:
总结
以上就是这篇文章的全部内容了,希望自己的一些经验能帮到同样遇到这些问题的朋友们,如果有疑问大家也可以留言交流。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。