我刚刚在ubuntu16.0.4中编译了mysql 8.0.12版本。
按照网站上的说明并制作以下my.cnf文件后:
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF
log_error = /var/log/mysql/error.log
# Remove case sensitive in table names
lower_case_table_names=1
我得到以下错误:
2018-08-11T19:45:06.461585Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
我应该更改什么以便数据字典与服务器设置对齐?
9条答案
按热度按时间l0oc07j21#
缺少等号(=),更改:
分为:
jfewjypa2#
根据这个链接,小写\u表\u名称应该与--initialize选项一起设置。
ldioqlga3#
到目前为止,我可以使用一种解决方法(我最初发布在askubuntu上):通过使用的新值重新初始化mysql
lower_case_table_names
安装后。以下步骤适用于新安装。如果数据库中已有数据,请先将其导出,然后再将其导入:安装mysql:
停止mysql服务:
删除mysql数据目录:
重新创建mysql数据目录(是的,仅仅删除其内容是不够的):
添加
lower_case_table_names = 1
到[mysqld]
中的节/etc/mysql/mysql.conf.d/mysqld.cnf
.使用重新初始化mysql
--lower_case_table_names=1
:启动mysql服务:
为mysql用户检索新生成的密码
root
:更改mysql用户的密码
root
通过以下方式之一:执行:
之后,或者调用“硬化”脚本:
之后,您可以验证
lower_case_table_names
在mysql中通过执行以下命令进行设置:预期产量:
sz81bmfz4#
mysql文档说
小写\u表\u名称只能在初始化服务器时配置。禁止在服务器初始化后更改小写\u表\u名称设置。
https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html
wribegjk5#
为了解决这个问题,
只需在bin文件夹(/usr/local/mysql/bin)中使用以下命令备份现有的db模式即可。/mysqldump-uroot-p password>dump.sql
备份完成后,使用rm-rf data命令删除mysql home(/usr/local/mysql/)中的现有数据文件夹
现在在mysqld节(/etc/my.cnf)下的my.cnf中将配置添加为“lower\u case\u table\u names=1”
现在在bin目录(/usr/local/mysql/bin)中使用以下命令初始化数据目录
对于安全模式。/mysqld--默认文件=/etc/my.cnf--初始化--用户=mysql--控制台
对于不安全模式。/mysqld--默认文件=/etc/my.cnf--初始化不安全--user=mysql--控制台
数据目录初始化后,对于不安全模式,请再次重复安装;对于安全模式,请使用根密码,该密码在数据目录初始化运行时初始化。
现在使用(/usr/local/mysql/bin)目录中的命令导入mysql服务器中的现有转储文件
./mysql-uroot-p密码<file.sql
vfhzx4xs6#
我有同样的问题,正如这里所描述的https://bugs.mysql.com/bug.php?id=90695 这是不支持的开箱即用。所以为了让它正常工作,我在ubuntu18.04上做了一个小写的\u table\u names=1不允许mysql启动
goqiplq27#
防止这个问题的最好方法是:首先添加
然后第一次启动mysql服务。
但是,如果您已经启动了服务器,要解决您的问题:
1.停止mysql:
2.清理数据目录或更改默认值,如果数据库中有数据,请提前备份新安装
3.在my.cnf中插入小写\u表格\u names=1:
4.重新开始
bis0qfac8#
如果现在有人遇到这个问题,如果你已经初始化了mysql,也就是说你已经启动并运行了mysql,然后出现了这个错误,只需在my.ini文件中注解掉这一行。
m2xkgtsf9#
我为它写了剧本。请读一个答案https://stackoverflow.com/a/58983474/380247. 基本上,您需要重新创建mysql数据目录。参数lower\u case\u table\u names只能在服务器初始化时配置。