{MySQL} my.iniの設定が反映されない問題

ユニコードで4バイトになる絵文字をDBに追加するために文字コードをutf8mb4に変更しようとしたのですが、my.iniの変更→サービス再起動しても設定が反映されず2日間苦労したのでメモ。

my.iniの

sql-mode=”STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION”

という記述をコメントアウトしてモードを管理者権限にすればいいらしい。
とにかくこれでサービスを再起動したら

きちんと反映されました。

よかった。

ちなみにmy.iniの場所も結構見つけにくい。
windowsのservice一覧からMySQLのプロパティを見たら、実行中のSQLサーバーがどの設定ファイルを参照しているかすぐにわかる。

そしてこれだけでも4バイトを食べてくれなかったので、さらにテーブルの設定を変更する。

MySQL [keyViewer]> alter table data convert to character set utf8mb4 collate utf8mb4_unicode_ci;

utf8mb4_0900_ai_ciというのになっていたのを、utf8mb4_unicode_ciというのに直したらエラーが出なくなった。

各テーブルの設定は、

show table status from ;

で確認できる。。。

Leave a Reply

Your email address will not be published. Required fields are marked *