mysql 8.0 + Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘).
一、安装8.0.13过程
linux 下载 安装 mysql 8.0+ (tar.xz)_ycsdn10的博客-CSDN博客
二、主从配置产生问题
mysql 8.0.13在进行主从配置的时候,发现没有my.cnf,从网上找了创建了文件 /etc/my.cnf,然后发现启动报错
在对应data下有一个xxx.err文件,cat xxx.err 打开后可以看到报错日志
内容是:
2021-12-15T23:24:40.645061+08:00 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2021-12-15T23:24:40.645336+08:00 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
三、分析及解决
1.初次
从上面可以看出lower_case_table_names 相关server和dictionary匹配配置有问题,根据官网所说,这个值在初始化之后就不能改了,但是我这边改成了2之后,就能成功重启,这个做个记录(下面重新改成了0)
重启
mysql.server restart
可以看到第一次重启因为有错误信息,所以关闭失败,但重启没有问题。不放心,可以重新再试一次
2.再次
过了1天,发现错误日志中有警告
[Warning] [MY-010160] [Server] lower_case_table_names was set to 2, even though your the file system '/mysql/mysql8/data/' is case sensitive. Now setting lower_case_table_names to 0 to avoid future problems
意思是说:即使大小写敏感,lower_case_table_names也被设置成了2。为了避免将来的问题,lower_case_table_names应当设置成0
还是根据官方提示来操作,我这边改成0,并重启,然后就没有这个警告提示了
四、附lower_case_table_names不同值作用
lower_case_table_names=0,数据库表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1 ,数据库表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2,数据库表名存储为给定的大小写但是比较的时候是小写的
可以用show命令查看当前库的值;
show variables like 'lower_case_table_names';
更多推荐
所有评论(0)