Ubuntu 12.04 でMySQL5.5の文字コード設定
/etc/mysql/my.cnfに以下を記述
[mysqld] character-set-server=utf8 skip-character-set-client-handshake
でMySQLをリスタート
$ sudo /etc/init.d/mysql restart
MySQL5.4まではmy.cnfには以下のように記述していた。
[mysqld] default-character-set=utf8
MySQL5.5で同じように記述すると、MySQLの起動に失敗する。
$ sudo /etc/init.d/mysql restart [sudo] password for kougasha: Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service mysql restart Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the stop(8) and then start(8) utilities, e.g. stop mysql ; start mysql. The restart(8) utility is also available. mysql stop/waiting start: Job failed to start
MySQLが起動しないままmysqlコマンドを使うとこんな感じのエラーが出る。
$ mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
これはMySQL5.5でdefault-character-setのサーバーオプションが廃止されたから。(正確にはMySQL5.5.29より後のリリースだと思うけど、今後復活することはないだろうから書き換えとけばいいと思う。)
参考URL