mysql表名默认区分大小写,改配置文件my.conf 加lower_case_table_names=1 启动报错 mysql8.0

wylc123 1年前 ⋅ 1890 阅读

背景

我们知道在 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


相关文章推荐

全部评论: 0

    我有话说: