我们知道在Linux环境下默认是区分大小写的,而MySQL在官方文档中明确表示了,一旦MySQL启动后,将无法再进行配置,只能进行重装,如果数据不重要倒是无所谓,但是如果有重要数据那是真的大坑。
如果启动之后再去更改/etc/my.cnf,那么重启MySQL就会出现如下错误:
Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
试过很多办法,最后的解决方案还是只能重装MySQL。
下面开始教大家干净的卸载MySQL。
一 、卸载MySQL
1、关闭MySQL
service mysqld stop
2、检查MySQL的状态
service mysqld status
如果是灰色的则MySQL成功关闭。
3、查看安装的mysql
查看CentOS系统中已安装的MySQL
4、卸载MySQL
rpm -ev mysql-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 --nodepsrpm -ev mysql-errmsg-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 --nodepsrpm -ev mysql-server-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 --nodepsrpm -ev mysql-common-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 --nodeps
5、删除MySQL相关的目录
find / -name mysql
删除MySQL相关的目录
rm -rf /var/lib/mysqlrm -rf /var/lib/mysql/mysqlrm -rf /var/log/mysqlrm -rf /usr/bin/mysqlrm -rf /usr/lib64/mysqlrm -rf /usr/share/selinux/packages/mysqlrm -rf /usr/share/mysql
6、删除my.cnf
rm -rf /etc/my.cnf
7、检查卸载情况
rpm -qa|grep -i mysql
如果显示为空就是已经卸载干净了。
二、安装MySQL
1、切换用户
通过以root用户或具有sudo特权的用户身份使用CentOS软件包管理器来安装MySQL 8.0服务器
sudo su
2、安装MySQL8
sudo dnf install @mysql
注意:我们这个时候MySQL已经安装好了,但是千万不要启动!不要启动!不要启动!重要的事情说三遍,要不你还要把第一部分的内容重新做一遍。
3、配置my.cnf
vim /etc/my.cnf
MySQL启动前先配置my.cnf
4、自动启动
sudo systemctl enable --now mysqld
5、启动MySQL
service mysqld start
首次启动一般时间会长一点,大约需要十几秒,后面就是秒开秒关了。
然后检查一下是否启动成功。
service mysqld status
如果出现下图,说明启动成功。
MySQL运行状态
6、进入MySQL
mysql -u root -p
首次进入不需要密码,直接Enter就好了。
7、检查大小写敏感
进入mysql控制台之后会出现mysql>,这时我们就可以通过命令操作MySQL了。
show variables like '%lower%';
如果出现以下情况,那么恭喜你这次MySQL大小写敏感的配置就算成功完成了。
MySQL大小写敏感的配置
其中 lower_case_table_name = 1;就是大小写敏感的关键,如果是=0,那么就配置失败了,唯一办法只有重装MySQL,这个坑足足跳了一天才跳过去。
后记:
CentOS 8 随MySQL 8.0一起发行,安装就像键入dnf install @mysql一样简单。但是往往简单就意味着容易踩坑,比如这个大小写敏感问题。