MovableType をベースにする案件があるので、自社サーバに MTOS5 をセットアップしていたのだが、対話式インストールウィザードの実行で
Connection error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
というエラーが出てしまう。
まあ、読んで字の如く「Socket が見つからないので MySQL デーモンと Socket 通信が出来ませんぜ」ということだろう。
そりゃそうだ。
Socket の位置は /var/lib/mysql/mysql.sock ではないもの。
現在テスト機で動かしている MySQL は、
socket = /tmp/mysql.sock
という設定で実行している。
ちなみに、同じサーバで某地域 SNS(OpenPNE ベース)を動かしていて、PHP から MySQL の利用は問題なく行われているし、拡張機能のいくつかを Perl で組んで実装しているので Perl からの接続も問題無い。
ということで、これは MovableType 側の問題だ。
で、ざっと grep かけて Socket のパスをどこで指定しているか探してみたが分からなかったので、何か情報は無いかと思ってググってみたら・・・とんでもねえ。
この件に関して記事を書いてるブログはけっこうあるのだが、ほとんどが、
/etc/my.cnf の socket の値を /var/lib/mysql/mysql.sock に変更して MySQL を再起動しましょう
と説明しているのだ。(驚)
ええ???アプリケーション側の事情にデーモン側が設定変更して合わせるの?(^^;
とんでもねえ!そんな対応、下の下の対応だ。
どこぞの素人が書いた記事が、これまた素人によってどんどん拡散していってるんじゃないのか?こえ~(笑)
正解は、mt-config.cgi に
DBSocket /tmp/mysql.sock
という記述を追加する・・・だ。
コメントする