MySQL
日本語
centos7
日本語化

mysqlで日本語を扱えるようにする

mysqlで日本語を使って怒られた人向けの記事

こんなエラーが出た人向け

エラー例
ERROR 1366 (HY000): Incorrect string value: '\xE3\x82\xBF\xE3\x82\xA4...' for column 'title' at row 1

現在の状態を確認する

任意のユーザでログインして、statusコマンド

コマンド例
# mysql -u minato -p

(パスワードを入力)  

mysql> status

   mysql  Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using  EditLine wrapper
   ~~
   Server characterset:    utf8
   Db     characterset:    utf8
   Client characterset:    utf8
   Conn.  characterset:    utf8
   ~~

上記が全部utf-8になってない人は設定する

/etc/my.cnf
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysqld]
character-set-server=utf8

使ってるOSによって置いてあるディレクトリは違うと思う
(上記はCentOS7)の例

再起動する

# systemctl restart mysqld.service

注意:文字コード設定はDB毎にもある

一旦、日本語を扱えない文字コードで作ったDBはstatusを見れば分かる通り、日本語が扱えないままになってる。作り直せば解決だけども、文字コードくらい変更できると思う(そこまでは調べてない、もし調べたら追記します)