我正在一台新的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不喜欢这个变量名,而显然它仍然有一个设置?
1条答案
按热度按时间6mw9ycah1#
问题是这个变量不适用于mysql。它只适用于mysqld。停止mysqld,将my.cnf更改为具有[mysqld]的设置,然后启动mysqld。这将为mysql服务器设置小写\u table \u names值。
如果运行/usr/bin/mysql(一个命令行mysql shell),它将不希望在配置文件中设置这个var。shell的行为将与mysql服务器的行为相同。