• ベストアンサー

データベースのlocalhostの設定について

初心者なので的外れなことを聞いていたらすみません。 phpからPDOを使ってローカル環境のデータベースに接続しようとしたのですが、localhostの接続先を変更することはできますか? mysqlが画像の通りに2つあり、MAMPで開発を進めているのですがMAMPの方ではないmysqlに接続したいのです。 下記のように接続すると、MAMPの方のmysqlに繋がります。 $db = new PDO('mysql:dbhost=localhost;dbname=db', $user, $pass); configあたりを変更すれば良いのでしょうか? ご回答宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Shiny12
  • ベストアンサー率100% (2/2)
回答No.3

MAMP自体は特に 仮想とかでないはずです。 DBはそれぞれ起動していると どのように判断されていますか? それぞれのPORT確認可能でしょうか MAMPのDBは一旦止めて もう片方のDBのみ起動してためしてください。 show variables like ‘port’; そのうえで $db = new PDO('mysql:dbhost=localhost;port= 3306;dbname=db', $user, $pass); 一般的には TCP3306です。

mgmg_
質問者

お礼

NO2に続けてありがとうございます。 結論から言うと、php.iniファイルの mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock pdo_mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock という部分の設定をnullにし、 $db = new PDO('mysql:host=localhost;unix_socket=/tmp/mysql.sock;dbname=tweet', $user, $pass); とすることで無事解決することができました。 おっしゃった通りにしてみたところ、 SQLSTATE[HY000] [2002] No such file or directory というエラーが表示されたので、 http://qiita.com/tadashi0713/items/97ad17b3865efdfeab21 http://concrete5-japan.org/community/forums/install/post-10230/ 以上の記事を手掛かりに解決することができました。 解決の糸口を見つけることができたので大変感謝いたします。 ありがとうございました。

その他の回答 (2)

  • Shiny12
  • ベストアンサー率100% (2/2)
回答No.2

Mysql はどちらも起動しているのでしょうか もしどちらも 起動しているとすると どちから Portがデフォルトと変わっています。 でなければ 片方起動しているときに もう片方が起動はできない(Portの重複)はずですがいかがでしょうか MAMPのMysqlを停止して もう片方を 起動すれば繋がると思われます

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.1

>>localhostの接続先を変更することはできますか? localhostは、文字通りに「ローカル=自分の動作しているマシン」です。 「自分のPCを指定したら、隣のPCに接続される」なんてことは混乱の極みですね。 だから、できません。

mgmg_
質問者

補足

お答えいただいてありがとうございます。 もしよろしければ追加で質問してもよろしいでしょうか。 一応二つのmysqlはどちらも自分のPCの中に入っているのですが、これはMAMPが仮想的にローカル環境(自分の動作しているマシン)を構築しているから、との認識でよろしいでしょうか? とすれば、外部ホストを指定するような形で指定すれば繋げることは可能でしょうか。 お答えいただけたら幸いです。よろしくお願いします。

関連するQ&A