mysql:无法设置小写\u table \u names变量

icomxhvb  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(558)

我正在一台新的ubuntu16.0.4机器上安装新软件,并用apt-get安装了mysql。我得到的版本是5.7.22,但无法让它接受配置变量lower\u case\u table\u names的设置。
我添加了这样的行:

[mysql]
lower_case_table_names = 1

当我编辑/etc/mysql中的任何*.cnf文件以使用此设置时,或者如果我将其添加到~/.my.cnf中,我得到

mysql: [ERROR] unknown variable 'lower_case_table_names=1'

如果我尝试启动mysql。类似地,我不能像doc说的那样在mysql命令行上使用它。

/usr/bin/mysql --lower_case_table_names=1 -u root -p

然而:
如果我进入sql命令解释器并键入

mysql> select @@lower_case_table_names;

我得到一个结果,显示变量被设置为0。但是不能用set语句更改。。。
为什么我不能设置这个变量呢?
~/.my.cnf文件:

[mysqld]
lower_case_table_names = 1
[mysql]
lower_case_table_names = 1

为什么mysql不喜欢这个变量名,而显然它仍然有一个设置?

6mw9ycah

6mw9ycah1#

问题是这个变量不适用于mysql。它只适用于mysqld。停止mysqld,将my.cnf更改为具有[mysqld]的设置,然后启动mysqld。这将为mysql服务器设置小写\u table \u names值。
如果运行/usr/bin/mysql(一个命令行mysql shell),它将不希望在配置文件中设置这个var。shell的行为将与mysql服务器的行为相同。

相关问题