質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

3743閲覧

SQLSTATE[HY000][2002],DBへの接続ができない

sadajiro

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/01/06 13:33

データベースの接続ができません。

現在大学の授業でWebアプリケーション開発入門という講義をとっています。ほとんどと言っていいほどこういった物の知識がないことを先にお伝えしておきます。mamp、phpMyAdmin、visual studio cordを授業では使用しています。

授業で下のようなコードを書いてDBに接続できるかを確認するというのを二ヶ月ほど前にやりました。自分だけうまくつながらず、ユーザー名、パスワードの確認、打ち間違いを防ぐためにコピペをする、いろいろなサイトを読みあさったりなんかしてみました。

下のコードをlocalhotで試すと,
SQLSTATE[HY000] [2002] 対象のコンピューターによって拒否されたため、接続できませんでした。と出てしまいます。

どうすればいいでしょうか。解決策をご存じの方がいらっしゃいましたらご教授のほどお願いいたします。

<?php try { $user = "phpuser"; $password = "Buvu4521"; //⾃分が設定したパスワード $dbh = new PDO('mysql:host=localhost;dbname=sample_db', $user, $password); }catch (PDOException $e){ die($e->getMessage()); } echo'conected<br>'; var_dump($dbh); ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

まず最初に、そのホスト・ユーザー・パスワードで、ターミナルからmysqlにアクセスできるか確認してみましょう。
https://qiita.com/Taku94/items/969cffd94970f9448b55

これでアクセスできなかったら、ホスト・ユーザー・パスワードが間違っています。
アクセスできたら、次ですが・・・
ポートが指定されていないのが気になりますね。

php

1 2$dbh = new PDO('mysql:host=localhost;dbname=sample_db;port=3306', $user, $password);

これだとどうでしょう?
mysqlのポートは、特にいじってなければデフォルトで3306番なので、行けると思います。
違っていたら、mampの画面から、mysqlのポート番号を確認して、その値を入れてみてください。

投稿2022/01/06 14:16

Iya712

総合スコア158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sadajiro

2022/01/06 14:55

portを入れてみてもだめそうです。。。
Iya712

2022/01/06 17:41

ターミナルからはmysqlにアクセスできたでしょうか? そちらがクリアにならないと、PHPの方は絶対接続できないです。
sadajiro

2022/01/07 08:48

ご丁寧にありがとうございます。ターミナルから接続するというのがいまいちよくわからないのですが教えていただけないでしょうか
Iya712

2022/01/07 11:07

基本は回答に記述したURLのページを参考にすれば大丈夫です。 どのあたりがどのように分からないのかが分からないですが・・ MAMP起動して、mysqlも起動した状態にする。 ターミナルアプリを開いて、以下コマンドを実行。 cd /Applications/MAMP/Library/bin/ これは、mampアプリの中にある、phpとかmysqlを実行するプログラムが入っているディレクトリに移動するという意味です。 そしたら、以下コマンドを実行。 ./mysql -u phpuser -p これは、mysqlにphpuserというユーザーでログインする。パスワード付きで。という意味です。 実行すると、パスワードを聞かれますので Buvu4521 こちらのパスワードを入力する。 それでmysqlにログインできていれば成功です。
sadajiro

2022/01/07 14:40

ご丁寧な返信ありがとうございます。 ターミナルと鋳物がよくわからなくて、アプリに入ってたwindows terminalという物を開いて cd /Applications/MAMP/Library/bin/ を入力したらcd : パス 'C:\Applications\MAMP\Library\bin\' が存在しないため検出できません。 発生場所 行:1 文字:1 + cd /Applications/MAMP/Library/bin/ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Applications\MAMP\Library\bin\:String) [Set-Location], ItemNotFoundE xception + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand と出てきました
Iya712

2022/01/08 09:32

あれ? お使いのPCはWindowsですか? MAMPとあったので、Macだと思って回答していました。 MAMPではなく、XAMPPでしょうか? MAMPはMacに特化したものですので、windowsには入りません。 windowsなら、上記コマンドは使えないですね。
sadajiro

2022/01/08 11:35

回答ありがとうございます。 今使っているのはwindowsです。 授業ではwindowsもmacも一律MAMPで進めていました。 MAMPはwindowsでもインストールはできて、DBに接続するところまでは正常に使えていたと思います。。。XAMPPではなくMAMPであってます。。。XAMPPでやれば解決できるとかあるんでしょうか。
Iya712

2022/01/08 13:09

へぇそうなんですね! windowsでもMAMPが使えるとは知りませんでした・・・。 こちらの問題については、MAMPでもXAMPPでも関係ないかと思います。 今確認すべきは、起動しているMySQLに「phpuser」でログインできるのかどうかなので、MySQLが起動できればなんでも良いです。 そうですね・・・windowsだとターミナルからのアクセス微妙ですね・・。 正直言って、windowsはあまり分からないです。すみません。 ちなみに、phpMyAdminには、こちらのユーザー「phpuser」でログインできるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問