【问题标题】:Set up mysql 8 with lower_case_table_names on CentOS 7在 CentOS 7 上使用 lower_case_table_names 设置 mysql 8
【发布时间】:2018-10-22 21:27:25
【问题描述】:

我正在尝试在 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 没有被完全删除?

【问题讨论】:

    标签: mysql innodb centos7


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这就是我最终做的,哦,好吧。
    【解决方案2】:

    在更改lower_case_table_names 值之前,在CentOs 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服务器之前,在/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

    希望对你有帮助。

    【讨论】:

    • 这对我不起作用。标记的答案并没有真正的帮助。在我删除mysql并重新安装后,然后更改my.cnf并启动mysqld,它仍然显示lower_case_table_names=0。你有更好的指导吗?
    • 你在修改my.cnf之前启动了mysql服务器吗?在更改文件 my.cnf 之前不应启动服务器。我不知道为什么,但是在启动服务器后我也无法更改文件。因此,安装-> 更改文件-> 启动服务器。那是我的实验。我希望,它能让你明白。
    • 问题是当我做sudo yum install mysql-server它会自动启动服务器/服务。
    • 对不起,不是我的情况。安装后,我需要手动启动mysql服务器,所以我有机会添加配置。我按照本教程进行操作,也许它可以帮助您完成这些步骤。 How To Install MySQL on CentOS 7
    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 2015-11-27
    • 2019-01-19
    • 2021-11-03
    • 2014-09-28
    • 2015-02-07
    • 1970-01-01
    • 2019-07-28
    相关资源
    最近更新 更多