🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

PHP

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

Q&A

1回答

538閲覧

PHPからMySQLに接続できません

starsecond

総合スコア13

MySQL

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

PHP

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

1グッド

0クリップ

投稿2019/11/13 06:30

前提・実現したいこと

PHP7.1からMySQLに接続しようとしたところ、エラー接続になりました。
エラーの原因を調べて下記サイトを参考にしてrootのPluginを「mysql_native_password」に変更
https://www.petitmonte.com/database/mysql_authentication_plugin.html

その後my.iniを「default_authentication_plugin=caching_sha2_password」から「default_authentication_plugin=mysql_native_password」に変更
再起動したら完了と書いてあったのでMySQLを閉じたら今度はMySQL自体が開かなくなりました。

一つの問題から複数の問題に発展していき調べても対策が見つかりませんでしたのでご教示頂けますと幸いです。

発生している問題・エラーメッセージ

Visual Studio2019デバッグ時のエラー:接続に失敗しました。Error:SQLSTATE[HY000] [2002] �Ώۂ̃R���s���[�^�[�ɂ���ċ��ۂ��ꂽ���߁A�ڑ��ł��܂���ł����B (最初は文字化けしていませんでしたが、どこの設定からかわかりませんが文字化けするようになりました) MySQL立ち上げ時のエラー:ローカルコンピュータ上のMySQL80サービスは起動して停止しました。サービスの中には、ほかのサービスやプログラムで使用されていない場合は自動的に停止するものがあります。

該当のソースコード

※ユーザ名やデータベース名等必要箇所は変えています。

<?php $dsn = 'mysql:host=ホスト名;dbname=データベース名;charset=utf8;'; $user = 'ユーザー名'; $password = 'パスワード'; try{ $pdo = new PDO($dsn, $user, $password); //データベースに接続 /* 以下2文はお決まりのコード */ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL文を作る(全レコードを取得する) $sql = "SELECT * FROM テーブル名"; // SQL文をセットする $stm = $pdo->prepare($sql); // SQL文を実行する $stm->execute(); // 結果の取得(連想配列で返す) $result = $stm->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row){ print_r($row); echo '<br>'; } }catch (PDOException $e){ echo '接続に失敗しました。'; echo 'Error:'.$e->getMessage(); exit(); } ?>
### 試したこと ### 補足情報(FW/ツールのバージョンなど) 使用PC:Windows10 MySQLのバージョン:8.0.18 PHPコードはVisualStudio2019で作成して以下サイトのコードを参考にしてテスト接続 https://daily-fruit.com/programing/265/
退会済みユーザー👍を押しています

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

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

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

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

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

m.ts10806

2019/11/13 06:42

コードはマークダウンのcode機能を利用してご提示ください。 また「PHPでMySQLに接続できない」旨の質問は過去に幾度となく投稿されています。それらは参考にされたのでしょうか?
guest

回答1

0

エラーで調べること
エラーメッセージの読み方と対処, 検索や質問の原則

Google検索:SQLSTATE[HY000] [2002]

タイトルは「PHPからMySQLに接続できません」とありますが、質問冒頭に書かれている通りMySQLがそもそも立ち上がっていないのが原因の根幹です。
まずはMySQLを正常に起動できるようにしてください。

エラーが文字化けするのは、どこかの文字コード設定が合ってないんでしょう(この内容だけでは分かりませんが、エラー番号で検索したら大体分かりますけどね)

投稿2019/11/23 20:17

m.ts10806

総合スコア80875

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

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

starsecond

2019/11/26 09:11

sqlを再インストールしたら動くようになりました。 ネット情報をsql上で実行していたら知らず内にrootパスワードが変わっていたのが原因だったようです。 その後、PHPと接続できるようにもなりました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問