在CentOS 7上使用lower_case_table_names设置mysql 8

时间:2018-10-22 21:27:26

标签: mysql innodb centos7

我正在尝试在centos 7上设置mysql 8 intsall,现在真是个地狱。我们有一些旧版软件通过小写名称连接到旧的mysql数据库,我想将其延续到新的设置中。

我在正确设置此配置时遇到问题,我不知道要设置哪个文件,何时设置它,甚至不知道要在哪个用户/权限级别下设置它。

当我在/etc/my.cnf中将其设置为1时,尝试启动mysqld我得到:

[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('1').

我已经重新安装了mysql,以为重新启动具有以下设置的/etc/my.cnf会有所帮助:

lower_case_table_names=1
default_authentication_plugin=mysql_native_password
bind-address=REDACTED
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

在安装mysql-server并将.cnf文件复制到它的位置后,我运行:

mysqld --defaults-file=/etc/my.cnf

并受到欢迎:

2018-10-22T21:30:27.826322Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2018-10-22T21:30:27.826414Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2018-10-22T21:30:28.057606Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/be-db-10.lower-test
2018-10-22T21:30:28.057668Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.13) starting as process 27077
2018-10-22T21:30:28.060609Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/be-db-10.lower-test
2018-10-22T21:30:28.060628Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/be-db-10.lower-test
2018-10-22T21:30:28.061062Z 0 [ERROR] [MY-010187] [Server] Could not open file '/var/log/mysqld.log' for error logging: Permission denied
2018-10-22T21:30:28.061098Z 0 [ERROR] [MY-010119] [Server] Aborting

我认为在某个时候我已经搞砸了一些权限,或者mysql没有被完全删除?

2 个答案:

答案 0 :(得分:2)

在可以更改值lower_case_table_names之前,请在CentO 7上取消安装mysql

yum remove mysql mysql-server

卸载后,重命名或删除mysql数据

mv /var/lib/mysql /var/lib/mysql_backup(备份)或rm -rf /var/lib/mysql(删除)

再次安装mysql

yum install mysql mysql-server

在运行mysql服务器之前,在lower_case_table_names=1上添加/etc/my.cnf,例如:nano /etc/my.cnf 保存文件,然后使用命令systemctl start mysqld

启动mysql服务器。

可以通过查询SHOW VARIABLES like 'lower%';

检查结果

您应该获得值为lower_case_table_names的{​​{1}}

我希望它能提供帮助。

答案 1 :(得分:1)

我很确定必须在安装前 设置lower_case_table_names。需要在冻结设置的情况下一次构造新的“数据字典”。

是的,完全删除并完全重新开始(更改my.cnf之后)。