前面在自己电脑上安装了Mysql8的数据库服务,数据库的表名默认是区分大小写的,在网上搜了很多文章,都只是说要在配置文件中添加 lower_case_table_names = 1
;我添加该配置项后,死活就是不生效,经过一翻折腾,终于将其搞定,现记录下以备后用。
以下是重新初始化MySQL并设置 lower_case_table_names
的一般步骤:
1. 停止MySQL服务
首先,停止正在运行的MySQL服务。在Ubuntu上,可以使用以下命令:
sudo systemctl stop mysql
2. 备份数据(如果需要保留)
如果你还没有备份并且希望保存现有数据,请先做备份。这通常涉及复制整个MySQL的数据目录,但确切位置可能会根据你的配置有所不同。常见的默认位置为 /var/lib/mysql
。
3. 删除MySQL数据目录
删除MySQL的数据目录以清除所有数据和配置。请确认数据已备份,然后执行:
sudo rm -rf /var/lib/mysql
4. 编辑MySQL配置文件
编辑MySQL的配置文件(通常是 /etc/mysql/my.cnf
或 /etc/mysql/mysql.conf.d/mysqld.cnf
),在 [mysqld]
部分添加或修改 lower_case_table_names
的值为1,以确保表名不区分大小写:
[mysqld]
...
lower_case_table_names = 1
...
5. 重新初始化MySQL(重点在这一步)
使用 mysqld
命令行工具重新初始化数据库,确保包含新设置的 lower_case_table_names
参数。这可以通过以下命令完成(注意,可能需要指定配置文件的位置):
sudo mysqld --initialize --lower-case-table-names=1
或者,如果初始化命令不接受直接参数,确保配置文件正确设置后,直接初始化而不带额外参数:
sudo mysqld --initialize
6. 启动MySQL服务
初始化完成后,启动MySQL服务:
sudo systemctl start mysql
7. 设置root密码(如果需要)
如果MySQL初始化过程中生成了临时的root密码,你需要在首次登录时更改它。检查MySQL的错误日志(通常位于 /var/log/mysql/error.log
)以找到临时密码,然后登录MySQL并更改密码。
*
修改密码时注意确认是否有使用密码校验插件
注意事项
- 重新初始化会删除所有用户和权限设置,你可能需要重新配置访问权限。
- 操作前确保已理解每一步的影响,并已做好数据备份。
- 具体命令和路径可能根据你的系统配置有所不同,建议参考最新的官方文档。
执行这些步骤后,MySQL将使用新的 lower_case_table_names
设置重新启动,所有新创建的表名都将不区分大小写。