MySQLでシステム変数「show_compatibility_56」をONに設定する必要がありました。それで、コマンドset global show_compatibility_56 = on;
を実行しましたが、機能しましたが、MySQLサーバーを停止してから再起動すると、この変数がOFFに戻ることに気付きました。それを維持する方法についてのヒント常にオンサーバーを再起動した場合でも?
Laravel Homestead(Vagrant))ボックス(MySql Ver 14.14 Distrib 5.7.17)を使用しています。
私はホームステッドにSSHで接続して実行する必要がありました:
echo "[mysqld]
show_compatibility_56 = ON
performance_schema" | Sudo tee -a /etc/mysql/conf.d/mysql.cnf >/dev/null
Sudo service mysql restart
(vimのオープンをスキップする方法を示す Mark Reed に感謝します。)
古いバージョン:
Sudo vim /etc/mysql/conf.d/mysql.cnf
次に、このセクションを追加しました:
[mysqld]
show_compatibility_56 = ON
performance_schema
ここやウェブの他の場所で他の回答が[mysqld]
ではなく[mysql]
の下にある必要があると指定しておらず、また、 MySqlサービス:
Sudo service mysql restart
この変数の設定は、Linuxでは構成ファイルmy.cnfに、Windowsではmy.iniに保存する必要があります。
これを永続的にするには、他のすべての変数に対して行ったように、この変数をMySQLの構成ファイルに追加する必要があります。
show_compatibility_56 = ON
Linuxベースのシステムの場合:ファイル名はmy.cnfであり、デフォルトの場所は/ etc/my.cnf
Windowsベースのシステムの場合:ファイル名はmy.iniであり、デフォルトの場所以下のコマンドで確認できるWindowsのmysqlデータディレクトリです。
'datadir'のような変数を表示します。
Zafarが既に指摘したように、構成ファイルで変数を設定して値を保存できます。
また、これは現在廃止されていることにも注意してください。 manual は言う:
注:
show_compatibility_56は、将来のMySQLリリースで削除される廃止予定のシステムおよびステータス変数情報ソースの制御を許可することを唯一の目的とするため、廃止予定です。これらのソースが削除されると、show_compatibility_56には目的がなく、削除されます。
MacのHombrewを介してMySQLをインストールした場合、デフォルトではmy.cnfはありません。 /etc/my.cnf
で作成し、@ Ryanの回答からのテキストを追加しました。
[mysqld]
show_compatibility_56 = ON
performance_schema
...そして、MySQLを再起動しました(古いバージョンの5.7を使用しています):
$ brew services restart [email protected]
これでうまくいきました。