• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Windows下安装MySQL 5.7.17压缩版中遇到的坑

    首先下载最新的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:

    具体可参考这两个链接:

    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了。

    技无一招鲜,坑要一路填。

    我的环境:

    (分割线,以上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:

    总结

    以上就是这篇文章的全部内容了,希望自己的一些经验能帮到同样遇到这些问题的朋友们,如果有疑问大家也可以留言交流。

    您可能感兴趣的文章:
    • Mysql 5.7.19 免安装版遇到的坑(收藏)
    • 关于避免MySQL替换逻辑SQL的坑爹操作详解
    • 升级到MySQL5.7后开发不得不注意的一些坑
    上一篇:CentOS 7下使用RPM安装mysql5.7.13
    下一篇:mysql 5.7.17 免安装版配置方法图文教程(windows10)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Windows下安装MySQL 5.7.17压缩版中遇到的坑 Windows,下,安装,MySQL,5.7.17,