Mysql8.0设置大小写不敏感解决方案[转]
【摘要】 初始化Mysql8.0,修改Mysql8.0大小写敏感问题(默认敏感,改为不敏感)。
在Debian12 下验证通过。
一、备份Mysql数据库
- 重新初始化mysql,相当于“恢复出厂设置”,所以一定要备份好重要的数据库,就是data目录下面的那些数据库文件;
二、停止Mysql服务
- 在修改配置之前,请先把mysql服务停止,执行命令如下:
systemctl stop mysql.service
三、删除错误日志
- 为了方便查看 mysql 的错误日志,可以先将 /var/log/mysqld.log 删除。此处路径按照当前配置的路径来,命令如下:
rm /var/log/mysqld.log
四、删除系统数据库与用户数据库
- 将 mysql 数据库中的系统数据库和用户数据库都删除掉,执行下面命令:
- 查看 /var/lib/mysql 目录下面的内容
- 递归删除 /var/lib/mysql 目录下面的内容
root@ubuntu:/var/lib/mysql# rm -rf *
五、创建数据库目录
- 上面将已存在的数据库目录 /var/lib/mysql 删除,下面将手动创建一个空目录且进行授权。命令如下:
- 手动创建一个mysql目录,就是刚刚删除的的mysql目录
root@ubuntu:/var/lib# mkdir mysql
- 为 /var/lib/mysql 目录授权,设置目录的所属用户和所属组
chown -R mysql:mysql mysql
- 查看目录详细信息,授权成功
六、配置添加(重要!!!)
- 如果需要区分大小写,需要在mysqld.cnf 中添加配置来忽略大小写,命令如下:
root@ubuntu:/etc/mysql# vim ./mysql.conf.d/mysqld.cnf
- 命令输入后,添加如图配置,保存退出
七、初始化Mysql
- 执行如下命令初始化 mysql 数据库:
mysqld --defaults-file=/etc/mysql/my.cnf --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql
八、启动Mysql服务
systemctl start mysql.service
九、登陆Mysql客户端
- 由于上面执行了 MySql 初始化操作,曾经的密码已经不能用了。MySQL 将在初始化过程中创建临时密码,临时密码存储在 /var/log/mysql/mysqld.log 中。
- 查找临时密码
- 使用 cat 和 grep 命令配合查找,命令如下:
cat /var/log/mysql/error.log
- 使用临时密码登陆Mysql,依次输入下面命令:
mysql -uroot -p
-
完成后可以下面命令退出Mysql:
exit; -
修改root用户密码(密码改成自己想要的,尽量复杂一点)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
十、查看Mysql8大小写敏感问题是否生效,需登陆Mysql。
mysql> show global variables like '%lower_case%';