IwataRisa
@IwataRisa (Risa Iwata)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PHPファイルからphpMyAdminにデータベース接続する方法

解決したいこと

phpからphpmyadminに接続できるかtry,catch文を使って確認したところ、何回やってもつながりませんでした。
phpmyadminは研修で使わせていただいてるものなので、もしかしたら誤りがあるかもしれません。
ホスト名、DB名、ユーザー名、パスワード以外に必要な情報、またはインストールするべきモジュールなどがあれば教えていただければ幸いです。

発生している問題・エラー

MySQL接続確認
MySQL への接続に失敗しました。
(SQLSTATE[HY000] [2002] Connection refused)

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

<?php
define('HOSTNAME', 'phpmyadminのIPアドレス');
define('DATABASE', 'phpmyadminのDB名');
define('USERNAME', 'phpmyadminの名前');
define('PASSWORD', 'phpmyadminのパスワード');

try {
  /// DB接続を試みる
  $db  = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, USERNAME, PASSWORD);
  $msg = "MySQL への接続確認が取れました。";
} catch (PDOException $e) {
  $isConnect = false;
  $msg       = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>MySQL接続確認</title>
  </head>
  <body>
    <h1>MySQL接続確認</h1>
    <p><?php echo $msg; ?></p>
  </body>
</html>

自分で試したこと

〇自分が普段phpmyadminにログインするためのユーザー名、パスワードを試してみました。
〇ホスト名はlocalhostとIPアドレスの両方を試しました。
〇linuxコマンドを使いmysqlで設定変数hostnameを呼び出してコードに書きました。

0

1Answer

解決するかはわかりませんが,2点思いついたので下記の内容を試してみてください。
(もうすでに試したものだったらすみません。
 また,手元にpcがないため,検証作業をできていません…そもそもミスってたら申し訳ないです…)

1.php.iniのextension の確認

extension = mysql
extension = pdo_mysql
上記のコメントアウトが外れているかを確認してください。

2.pdo()の引数の設定方法の変更

Defineでもいける気がするのですが,
念のためこちらでも同様の問題が発生するか試してみてください。

こちらでも問題がある場合かつ,PHPMyAdminがローカルに構築されたものである場合は,ユーザー名か,パスワードに問題がある可能性が高いと思います。
(Phpmyadminを長い間使ってないのでよく覚えてないのですが,Phpmyadminにログインするために使用するユーザーと,dbにログインするために使うユーザーは別物だったような気もします…)

Pdo.PHP
<?php
$servername = "localhost";
$username = "ユーザー名";
$password = "パスワード";
$dbname = "データベース名";

try {
    $dsn = "mysql:host=$servername;dbname=$dbname";
    $conn = new PDO($dsn, $username, $password);
     $msg = "MySQL への接続確認が取れました。";
} catch(PDOException $e) {
    $msg       = "MySQL への接続に失敗しました。<br>(" . $e->getMessage() . ")";
}

// 接続を閉じる
$conn = null;
?>

エラーの修正は大変だと思いますが応援しています!!

参考になるかもしれない資料

最終手段として,新しくユーザーを作ってみるのも手だと思います!

1Like

Comments

  1. @IwataRisa

    Questioner

    回答いただきありがとうございます!
    下記の方法で試しましたところどうやらローカルホストの部分は、IPアドレスとポート番号が必要だったようで無事に接続することができました!

    ありがとうございます!

Your answer might help someone💌