背景
我们知道在 Linux 环境下默认是区分大小写的,所以我们需要改变这种默认方式,经过网上各种搜索后,基本就是清一色的修改 lower_case_table_names,然后信誓旦旦的去修改了,但是修改后发现 mysql 直接启动不了,怎么回事呢?
错误
报错信息:
Job for mysqld.service failed because the control process exited with
error code. See "systemctl status mysqld.service" and "journalctl -xe"
for details.
原因
mysql8.0 要求我们不能在initialize之后再更改 lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。
所以…
重装!不用再试了,试过很多方法最终还是重装。。。
在初始化时,设置 lower-case-table-names
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
卸载mysql8.0
1、关闭mysql
service mysqld stop
2、查看安装的mysql
rpm -qa|grep -i mysql
3、卸载安装的mysql
rpm -ev mysql-community-client-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-common-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-server-8.0.11-1.el7.x86_64 --nodeps
rpm -ev mysql-community-libs-8.0.11-1.el7.x86_64 --nodeps
4、删除mysql相关目录
find / -name mysql
[root@niceyoohw conf]# rm -rf /var/lib/mysql/
[root@niceyoohw conf]# rm -rf /usr/lib64/mysql
[root@niceyoohw conf]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@niceyoohw conf]# rm -rf /etc/selinux/targeted/tmp/modules/100/mysql
5、删除my.cnf
rm -rf /etc/my.cnf
6、检查卸载情况
rpm -qa|grep -i mysql
显示为空,卸载完毕。
遇到问题
卸载重装并在初始化时,设置 lower-case-table-names,发现mysql起不来。
解决
按照提示输入命令
systemctl status mysqld.service 或者 journalctl -xn
但是显示的 信息并不能提供服务启动失败的真正原因
进一步查看日志:
vi /var/log/mysqld.log
显示大体意思是:实例初始化的时候设置了lower-case-table-names=1,my.cnf中没有对应配置lower-case-table-names=1,所以起不来。
解决:
在my.cnf中加上配置lower-case-table-names=1
还可能会出现下面问题:
原因分析: 端口3306被占用
解决:
ps -aux|grep mysql
删除mysql 进程
kill -9 pid
注意:本文归作者所有,未经作者允许,不得转载