MySQL の文字コードを UTF8 に変更する
MySQL 5.7 で文字コードを UTF8 に変更する手順をご紹介します。
文字コードを show variables で確認
まず、現在の文字コードを show variables like ‘character_set%’; コマンドで確認します。
mysql> show variables like 'character_set%'; +--------------------------+------------------------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/Cellar/mysql/5.7.17/share/mysql/charsets/ | +--------------------------+------------------------------------------------------+ 8 rows in set (0.02 sec) |
my.cnf に character_set_* を UTF8 にする設定を追記
次に MySQL の設定ファイル my.cnf に文字コードを UTF8 にする設定を追記します。
以下のような設定を追記してあげれば OK です。
[mysqld] # character_set character-set-server = utf8 [mysql] default-character-set = utf8 |
MySQL を restart して設定確認
最後に MySQL を再起動して設定反映しましょう。
Linux で再起動する場合
$ service mysqld restart |
$ /etc/init.d/mysqld restart |
macOS で再起動する場合
$ brew services restart mysql Stopping `mysql`... (might take a while) ==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql) ==> Successfully started `mysql` (label: homebrew.mxcl.mysql) |
mysql> show variables like 'character_set%'; +--------------------------+------------------------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/Cellar/mysql/5.7.17/share/mysql/charsets/ | +--------------------------+------------------------------------------------------+ 8 rows in set (0.01 sec) |
文字コードの問題にぶつかる前に、最初から UTF8 に設定しておくと安心ですね。