mysql8 不区分大小写6_MySQL8表名忽略大小写问题

2019独角兽企业重金招聘Python工程师标准>>>

6936d1565ae689371725cdb5fc51c415.png

--报错信息:

2018-06-07T19:52:26.943083+08:00 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) starting as process 37992

100 200

100 200

2018-06-07T19:52:31.581790+08:00 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('1').

2018-06-07T19:52:31.582111+08:00 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

2018-06-07T19:52:31.582140+08:00 0 [ERROR] [MY-010119] [Server] Aborting

2018-06-07T19:52:33.348638+08:00 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.

--背景知识:

MySQL8.0  新增了data dictionary的概念,数据初始化的时候在linux下默认使用lower-case-table-names=0的参数,数据库启动的时候读取的my.cnf文件中的值。若二者值不一致则在mysql的错误日志中记录报错信息。

在MySQL 5.7之前则允许数据库初始化和启动的值不一致且以启动值为准。

在MySQL 官方提供的RPM包中默认是使用lower-case-table-names=0,不太适合生产环境部署。在生产环境建议使用官方的二进制包。

--官方解释:

After initialization, is is not allowed to change this setting.So "lower_case_table_names" needs to be set together with --initialize .

--解决办法:

在mysql数据库初始化的时候指定不区分大小写,在数据库实例启动的时候也要指定不区分大小写。即数据库初始化时lower_case_table_names的值和数据库启动时的值需要一样。

在实际开发生产的应用中多是不区分大小写的即lower-case-table-names=1。

--操作步骤:

/usr/local/mysql/bin/mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/node1

my.cnf

[mysqld]

lower_case_table_names        = 1

若初始化和启动值不一样则会在错误日志中有如下提示:

[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').

[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('1').

--参考资料:

https://bugs.mysql.com/bug.php?id=90695

---------------------

作者:vkingnew

来源:CSDN

原文:https://blog.csdn.net/vkingnew/article/details/80613043

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值