在 CentOS 7 上设置 mysql 8 和 lower_case_table_names
Set up mysql 8 with lower_case_table_names on CentOS 7
我正在尝试在 centos 7 上设置一个 mysql 8 intsall,我玩得很开心。我们有一些遗留软件通过小写名称连接到旧的 mysql 数据库,我想将其转移到这个新设置中。
我在正确设置此配置时遇到问题,我不知道要设置什么文件或何时设置它,甚至不知道在什么 user/permission 级别下设置它。
当我在 /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 没有被完全删除?
我很确定 lower_case_table_names
必须在 安装之前设置 。新 "Data Dictionary" 需要构造 一次 并冻结设置。
所以,是的,完全删除并完全重新开始(在更改 my.cnf 之后)。
在 CentOs 7mysql 上卸载 mysql 可以更改值 lower_case_table_names 之前
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 服务器之前,在 /etc/my.cnf
上添加 lower_case_table_names=1
,例如:nano /etc/my.cnf
保存文件,然后使用命令 systemctl start mysqld
启动 mysql 服务器
可以使用查询 SHOW VARIABLES like 'lower%';
检查结果
你应该得到 lower_case_table_names
,值为 1
希望对你有所帮助
我正在尝试在 centos 7 上设置一个 mysql 8 intsall,我玩得很开心。我们有一些遗留软件通过小写名称连接到旧的 mysql 数据库,我想将其转移到这个新设置中。
我在正确设置此配置时遇到问题,我不知道要设置什么文件或何时设置它,甚至不知道在什么 user/permission 级别下设置它。
当我在 /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 没有被完全删除?
我很确定 lower_case_table_names
必须在 安装之前设置 。新 "Data Dictionary" 需要构造 一次 并冻结设置。
所以,是的,完全删除并完全重新开始(在更改 my.cnf 之后)。
在 CentOs 7mysql 上卸载 mysql 可以更改值 lower_case_table_names 之前
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 服务器之前,在 /etc/my.cnf
上添加 lower_case_table_names=1
,例如:nano /etc/my.cnf
保存文件,然后使用命令 systemctl start mysqld
可以使用查询 SHOW VARIABLES like 'lower%';
你应该得到 lower_case_table_names
,值为 1
希望对你有所帮助