MySQLとlocalhost
スポンサード リンク
同じPC上に複数のMySQLサーバを起動。ひとつは通常のmysqldで起動するサーバで、設定ファイルはmy.cnf、ポート番号は3306。もうひとつはmysqld_multiを利用して起動するサーバで、設定ファイルは別物、ポート番号は3307。
PHPプログラムで後者のポート番号3307のほうにmysql_connectしようとしたのですが、シェルからは正常に接続できるのに、ブラウザからは接続できませんでした。PEAR::DBを使っていて、DSNはこんな感じ。
$dsn = "mysql://user:pass@localhost:" . rawurlencode($path_to_sock) . "/dbname";
localhostだからポート番号ではなくてソケットファイルを指定したのですが、うまくいきませんでした。そこでソケットではなくポート番号に変更したところ、今度はブラウザからも接続できたように見えました。しかし、mysql_connectのリファレンスに以下のような注意書きが。
ということは、localhost:3307って指定してもそれは無視されて、ソケットファイルが使われてしまうということになります。だとすると、このとき使われるソケットは前者のサーバのソケットなのでしょうか、それとも後者のほうでしょうか。前者だとするとそのポート番号は3306であり、期待する結果ではありません。ということを考えるより、注意書きにあるように「127.0.0.1:3307」って指定すればうまくいくのでしょうか。
MySQLとlocalhostの関係は、奥が深そうです。
localhostサーバ接続指定ポート番号mysqlMySQLソケット
前のエントリー: « Amazonの支払いをコンビニとかATMとかネットバンキングで
次のエントリー: MySQLのGRANT »
トラックバック
このエントリーのトラックバックURL:
この一覧は、次のエントリーを参照しています: MySQLとlocalhost:
» MySQLのGRANT from F.Ko-Jiの「一秒後は未来」
昨日からMySQLに接続できねーぞと困っていた件。いろいろやってみて、結局 GR... [詳しくはこちら]
タイトル:
URL:
リンク用HTMLタグ:
powered by Google Chart API




