问题
直接修改/etc/my.cnf
lower_case_table_names = 1
重启报错:
Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
查看mysql-error.log
1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
0 [ERROR] [MY-010119] [Server] Aborting
原因
mysql8.0要求我们不能在initialize之后再更改 lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。
要在初始化时设置 lower-case-table-names=1
mysqld --initialize-insecure --user mysql --datadir=/data/mysql --lower-case-table-names=1
编辑my.cnf 新添加
lower_case_table_names = 1
重启
systemctl restart mysqld
总结
已安装过的mysql8.0无法通过修改my.cnf实现表名大小写是否区分,需要重新安装数据库。
重新安装前需要先备份好数据
关闭数据库并清空数据目录/data/mysql
启动数据库并初始化。初始化时带上参数 lower-case-table-names=1。
修改初始化密码。
修改my.cnf并重启mysql。
导入备份数据。
评论