LoginSignup
0
0

More than 3 years have passed since last update.

MAMP環境のDB接続エラー[SQLSTATE[HY000] [2002] Connection refused]

Posted at

最近パソコンをMacに変えてMAMP環境で学習しています。

PHPからDBに接続する時、ちょっとハマってしまった点があったのでこちらに忘備録も兼ねて記載しておきます。

PDOの引数

PHPでPDOのオブジェクトを生成してデータベースに接続する際には、引数として以下のように3つ必要です。ちなみにPDOはPHP Data Objectの略でPHPでデータベースを扱うときにオブジェクトになります。

PHP
new PDO('接続文字列','ユーザー名','パスワード')

XAMPP環境

WindowsではXAMPP環境で以下の記述でデータベースに接続できていました。

PHP
<?php
try{
    $db = new PDO('mysql:dbname=mydb;host=127.0.0.1;charset=utf8','root','');
} catch(PDOException $e) {
    echo 'DB接続エラー:'.$e->getMessage();
}
?>

MacでのDB接続エラー

MacでもMAMP環境で同じようにやればいいかなと思い、同じ記述でデータベースに接続してみたところまさかのエラー

DB接続エラー:SQLSTATE[HY000] [2002] Connection refused

MAMP環境

どうやらMAMP環境ではPDOの引数の記述が違うようで、正しくは以下の通りです。

PHP
<?php
try{
    $db = new PDO('mysql:dbname=mydb;host=localhost;charset=utf8','root','root');
} catch(PDOException $e) {
    echo 'DB接続エラー:'.$e->getMessage();
}
?>

PDO接続文字列のところで、host=に後に続くのがXAMPPでは127.0.0.1なのに対して、MAMPではlocalhostになります。またパスワードがXAMPPでは''(空文字)なのに対して、MAMPでは'root'になってます。これは初期値となっておりこちらも変更しないといけません。

参考書やテキストではXAMPP環境での記述が多いので、MAMP環境で接続エラーになっている人がいたらとりあえずhostをlocalhostに、パスワードをrootにしておけばOKです。

以上!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0