MySQLのsocket設定にハマる

| | コメント(0) | トラックバック(0)

現在進行しているプロジェクトで指定されたサーバーは、いろいろと独自な仕様になっているようで、いちいち いろんなところでつまずいてます。

1. MySQLへの接続時のsocket設定

うちのPHPの共通部品のスクリプトでMySQLに接続しようとすると

mysql_connect(): Can't connect to local MySQL server through socket '/***/***/mysql.sock' (2) in ... phpファイル名

というエラーメッセージ。

MySQLの接続設定のServer名、DB名、接続ID/Passなどを確認してみたが間違ってない。
何かこのサーバ独自の設定が必要なのだろうか? と翌日サポートに聞いてみることにして、ひきつづきMTの導入作業へ。

「でもMTもMySQLへのセットアップだから、同じ感じのエラーで引っかかりそうだなぁ...」

と、おもいつつもMTのインストーラを流していると、MT4.261では MySQLの接続設定まわりで「高度な設定」というのがあった。

いつもはmt-configも手動設定してるので、いつもなら表示されない画面。

気になったのでクリックして見てみると、見慣れない「データベース・ソケット」の入力フィールドがあった。
これをクリックして見てみると、見慣れない「データベース・ソケット」の入力フィールドがある。

「あれ?MTでsocket設定ってあったっけ? というか、もしやMySQLのconnectの時に、個別にsocketのpath指定ができたり?」

とおもい、調べてみたところ、できるんですね。

恥ずかしながら知りませんでした。

PHPのmysql_connectだと

mysql_connect("[servername]:[/path/to/socket/mysql.sock]","[mysql-id]","[mysql-pass]")

みたいな書き方。

サーバ情報でsocketのpathを見て指定したところ.... つながった(w

これまでいろんなサーバーに対して、うちのPHP部品のスクリプトを設定してきましたが、こんな設定は必要ありませんでした。

逆にこの指定をしなければならないのは mysqlのサーバとPHPのmysqlクライアントでsocketの認識が違っているということなのではないか。
# なので、もしかしたらこれは仕様というより、このサーバー会社のPHPのミスコンフィグかも。

今後のためにメモしておこう。

2. MTのHTTPProxy / HTTPNoProxy 設定

サーバから外部に接続する際にProxyが噛んでる時の追加設定。
今回のサーバでは必要でした。

mt-config.cgi に以下の1行を追記。

HTTPProxy [プロキシサーバー名]

逆に内部サーバへのPingなどで プロキシを経由させたくない場合は HTTPNoProxy 設定。

なるほど。これもメモということで。

# ただし思った動作をしてないので、これはサーバー会社のサポートへの確認事項。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: MySQLのsocket設定にハマる

このブログ記事に対するトラックバックURL: http://www.x-logic.jp/mt4/mt-tb.cgi/145

コメントする


画像の中に見える文字を入力してください。

このブログについて


(株)クロスロジックは
SixApart ProNetの
メンバーです。

最近のコメント

Techonrati

Technorati search

» リンクしているブログ