MySQL8如何设置表名大小写不敏感?

刚刚安装MySQL8,安装过程一切顺利,但是在配置文件设置表名不区分大小写属性lower_case_table_names=1之后启动报错

2018-04-21T07:11:57.780537Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.
2018-04-21T07:11:58.115925Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.11) starting as process 3280
2018-04-21T07:11:58.377514Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2018-04-21T07:11:58.377736Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-04-21T07:11:58.377782Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-04-21T07:11:59.809504Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.

试过设成0和2都没问题,就是无法设置成1.

阅读 28.1k
3 个回答

遇到同样问题,翻看MySQL官方文档发现

lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited.

别指望了改了

经过尝试,只有在安装完成之后,初始化数据库之前,修改my.cnf
然后再初始化数据库才有效

新手上路,请多包涵

如果你不在意数据的话直接删除数据
1 停止MySQL
2 删除 MySQL的数据 /var/lib/mysql
3 修改该 lower_case_table_names = 1
4 启动 mysql
4 搞定

说起来,我算是docker党。给一个我自己的建议:

使用docker mysql镜像吧

配置和启动都很简单,而且可以启动任意多个,可以参考我的博文:
Docker关于mysql镜像的使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题