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 suessfully installed.
然后启动MySQL服务
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 aounts 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”.
具体可参考这两个链接
原因找到了,那我们来手动Initialize Data Directory一下啊
mysqld --defaults-file=C:\Prog\MySQL\my.ini --initialize-insecure
然后依次
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
以上就是这篇文章的全部内容了,希望自己的一些经验能帮到同样遇到这些问题的朋友们,如果有疑问大家也可以留言交流。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指