プログラミングノート

プログラミングの備忘録です

MySQL Windowsでsql_mode設定が変更できない

WindowsMysql 5.7を使っています。

sql_modeを変更するために、Mysqlのインストーディレクトリにあるmy.iniを変更しましたが、データベースに反映されませんでした。それは、my.iniが別の場所にもあったためでした。

そのときのことをメモしておきます。

 

1.MysqlのインストーディレクトリにあるMySQL SERVER5.7/my.iniを変更しました。

下の1行をコメントアウトしました。

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2.もう一つのmy.iniを変更しました。

もう一つのmy.iniの場所は、php.iniのdatadirの一つ上の階層にあるにあるMySQL Server 5.7\my.iniです。

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Mysqlのインストーディレクトリが、WindowsのProgramDataやProgramFileの場合は、管理者権限でファイルを編集する必要があります。

 

3.コマンドプロンプトから確認します。

Mysqlにログイン後、下のSQLを実行します。

select @@GLOBAL.sql_mode;

 

下の結果が表示されました。

+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
|                   |
+-------------------+

 

4.メモ

sqlは、「@@GLOBAL.sql_mode」でsql_(アンダーバー)modeですが、

iniファイルには、「sql-mode」でsql-(ハイフン)modeでした。

 

5.参考

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.7 サーバー SQL モード