【发布时间】:2016-02-17 06:08:56
【问题描述】:
我需要在 MySQL 中将系统变量“show_compatibility_56”设置为 ON。所以,我运行命令set global show_compatibility_56 = on;,它工作了但是,我注意到每当我停止然后启动MySQL服务器时,这个变量就会回到OFF。即使我重新启动服务器,关于如何保持它始终开启的任何提示?
【问题讨论】:
标签: mysql sql mysql-workbench
我需要在 MySQL 中将系统变量“show_compatibility_56”设置为 ON。所以,我运行命令set global show_compatibility_56 = on;,它工作了但是,我注意到每当我停止然后启动MySQL服务器时,这个变量就会回到OFF。即使我重新启动服务器,关于如何保持它始终开启的任何提示?
【问题讨论】:
标签: mysql sql mysql-workbench
我正在使用 Laravel Homestead (Vagrant) 盒子(MySql Ver 14.14 Distrib 5.7.17)。
我需要通过 SSH 连接到 Homestead 然后运行:
echo "[mysqld]
show_compatibility_56 = ON
performance_schema" | sudo tee -a /etc/mysql/conf.d/mysql.cnf >/dev/null
sudo service mysql restart
(感谢Mark Reed 展示了如何跳过打开vim。)
旧版:
sudo vim /etc/mysql/conf.d/mysql.cnf
然后我添加了这个部分:
[mysqld]
show_compatibility_56 = ON
performance_schema
我很惊讶这里和网络上其他地方的其他答案没有指定它需要在 [mysqld] 而不是 [mysql] 下,而且您必须重新启动 MySql 服务:
sudo service mysql restart
【讨论】:
SHOW SESSION VARIABLES where Variable_name like '%show_compatibility%'。它有助于从 SQL 编辑器测试它是否良好
brew services restart mysql重启mysql。
您需要将此变量设置保存在您的配置文件 my.cnf for linux 和 my.ini for windows 中。
【讨论】:
要使其永久化,您需要在 MySQL 的配置文件中添加此变量,就像我们对所有其他变量所做的那样:
show_compatibility_56 = 开启
对于基于 Linux 的系统: 文件名为 my.cnf,默认位置为 /etc/my.cnf
对于基于 Windows 的系统: 文件名为 my.ini,默认位置是您的 windows mysql 数据目录,您可以通过以下命令检查:
显示“datadir”等变量;
【讨论】:
如果您在 Mac 上通过 Hombrew 安装了 MySQL,则默认情况下没有 my.cnf。我在/etc/my.cnf 中创建了一个,添加了@Ryan 回答中的文字:
[mysqld]
show_compatibility_56 = ON
performance_schema
...然后重新启动 MySQL,使用(我使用的是旧的 5.7 版本):
$ brew services restart mysql@5.7
这对我有用。
【讨论】:
正如 Zafar 已经指出的,您可以在配置文件中设置变量以保存该值。
另请注意,现在已弃用。 manual 说:
注意:
show_compatibility_56 已被弃用,因为它的唯一目的是 允许控制已弃用的系统和状态变量信息 将在未来的 MySQL 版本中删除的源。当那些 源被删除,show_compatibility_56 将没有任何用途,并且 也将被删除。
【讨论】: