在默认情况下mysql8在linux安装是区分表名大小写的。
当安装完成数据库,启动数据库前,先去mysql配置文件中添加lower_case_table_names=1
,然后执行service mysql start
进行首次初始化数据库和启动。
但是在ubuntu系统中,装完MySQL后会自动启动,所以添加了lower_case_table_names=1
之后重启MySQL,会启动失败。
在 MySQL8中,数据目录初始化之后,不再允许更改lower_case_table_names = 1
的值,因此修改此配置的话要先删除数据库文件,需提前备份老数据。
1.备份数据库
2.停止数据库service mysql stop
3.删除数据库文件rm -rf /var/lib/mysql
4.打开配置文件设置大小写参数保存
1 | [mysqld] |
5.创建mysql目录并初始化数据目录
1 | sudo mkdir -p /var/lib/mysql |
6.重启服务service mysql restart
因为老数据库文件被删除,此时无法登录mysql,报错:
1 | sudo mysql -u root -p |
7.设置 root 用户密码:找到临时密码并登录后更改 root 用户密码。
1 | sudo grep 'temporary password' /var/log/mysql/error.log |
8.使用临时密码登录后:
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword'; |