🔔以下操作基于服务器Linux发行版本为Fedora、RedHat和CentOS 并且已经通过yum方式已经安装过MySQL8.0
首先需要了解到的是mysql8.0不支持在初始化过数据库后,通过编辑my.cnf配置文件,添加lower_case_table_names=1然后重启mysql服务就直接生效,8.0之前支持这种方式,mysql8.0设置不区分大小写需要先把数据库目录删除,重新初始化数据库.
备份数据库
- 使用mysqldump命令备份数据库的所有库,输入数据库密码后开始备份,3306是mysql端口
1
mysqldump -uroot -p -P 3306 --all-databases --column-statistics=0 > /tmp/all.sql
编辑配置文件
- 依次执行如下命令,将数据库配置文件复制一份,增加配置lower_case_table_names=1,对大小写不敏感
1 |
|
删除原数据库
- 查找已安装的MySQL-Server,确保已经安装了MySQL-Server8.0,正常应该是没得问题的,毕竟服务都启动了…
1
yum list installed | grep mysql-community-server
- 停止MySQL服务
1
systemctl stop mysqld
- 删除原数据库数据
1
rm -rf /var/lib/mysql /var/log/mysqld.log
重新初始化MySQL
- 将修改后的配置文件覆盖
1
cp $HOME/my.cnf /etc/my.cnf
- 重启MySQL服务
1
systemctl start mysqld
- 查看MySQL的默认密码
1
grep 'temporary password' /var/log/mysqld.log | awk '{print $4}'
- 按照提示输入生成的默认密码进入MySQL
1
mysql -uroot -p
- 修改默认密码并配置可远程连接,新密码太简单了会设置失败
1
2
3
4
5ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; use mysql; update user set host = '%' where user = 'root'; FLUSH PRIVILEGES; exit
- 输入密码导入备份的数据
1
mysql -uroot -p </tmp/all.sql
- 使用数据库工具查看数据库表名是否全部为小写了