MySQLのトラブルあれこれ

今日は、MySQLでトラブった一日だったので、ちょっと書いておくことにします。

とりあえずやろうとしていたのは、テーブルのcharsetとかcollationとかをutf8に揃えようとしていて、ストアドプロシジャなんか書いてlatin1に設定されているテーブルの一覧を取って、その結果にALTER TABLEを実行するというようなことをやろうとしていたわけです。で、そのストアドプロシジャは、自分のマシンではもちろんちゃんと動作していたんだけど、AWS環境である顧客のインスタンスに適用しようとしたら、エラー。

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=’

色々と試して、接続パラメータやらなんやら全部utf8_unicode_ciに揃えても、なぜかダメ。で、結局このエラーの原因はよくわかっていないんだけど、その途中で、自分のマシンのMySQLをリスタートさせたりしていたら、MySQLがお亡くなりになってしまったという次第。

こちらは、有名なソケットが云々というやつ。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

ググッても何やら一貫した答えがないのでも有名。前回、これに遭遇したときはMySQL再インストールのハメになったので、かなりあせりました。
で、これも色々と試して、結局は、~/.my.cnf を消して、サーバリスタートでなぜかOKになりました。
my.cnfの何が悪いのかはこれから調べますが、なにゆえに設定ファイル(ソケットの設定なんてしていないのに)がこのエラーに帰結するのか現在の私には理解不能。

それとMySQLってすごい勢いで進歩して、今は業務で使われているとは言っても、やっぱりまだまだ結構制限が多いということを認識しています。やっぱり使い方次第ということですね。

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

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