- ベストアンサー
データベースのlocalhostの設定について
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
MAMP自体は特に 仮想とかでないはずです。 DBはそれぞれ起動していると どのように判断されていますか? それぞれのPORT確認可能でしょうか MAMPのDBは一旦止めて もう片方のDBのみ起動してためしてください。 show variables like ‘port’; そのうえで $db = new PDO('mysql:dbhost=localhost;port= 3306;dbname=db', $user, $pass); 一般的には TCP3306です。
その他の回答 (2)
- Shiny12
- ベストアンサー率100% (2/2)
回答No.2
Mysql はどちらも起動しているのでしょうか もしどちらも 起動しているとすると どちから Portがデフォルトと変わっています。 でなければ 片方起動しているときに もう片方が起動はできない(Portの重複)はずですがいかがでしょうか MAMPのMysqlを停止して もう片方を 起動すれば繋がると思われます
- catpow
- ベストアンサー率24% (620/2527)
回答No.1
>>localhostの接続先を変更することはできますか? localhostは、文字通りに「ローカル=自分の動作しているマシン」です。 「自分のPCを指定したら、隣のPCに接続される」なんてことは混乱の極みですね。 だから、できません。
質問者
補足
お答えいただいてありがとうございます。 もしよろしければ追加で質問してもよろしいでしょうか。 一応二つのmysqlはどちらも自分のPCの中に入っているのですが、これはMAMPが仮想的にローカル環境(自分の動作しているマシン)を構築しているから、との認識でよろしいでしょうか? とすれば、外部ホストを指定するような形で指定すれば繋げることは可能でしょうか。 お答えいただけたら幸いです。よろしくお願いします。
お礼
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/ 以上の記事を手掛かりに解決することができました。 解決の糸口を見つけることができたので大変感謝いたします。 ありがとうございました。