前提・実現したいこと
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/