###1.phpからmysql接続テスト(突然の認証エラー)
mariadb(mysql)にはrootで入れるの(というかDB作成、テーブル作成まで完了)に、
テストプログラムの接続で失敗。下記のようなエラー画面(caching_sha2_password)
が表示される。
この画面で何のプログラムかわかる人は、きっと天才だ。
###2.解決法(ホスト名の後ろに何かを指定)
ググって修正した結果が下記のプログラム。
test_dino2_mysql.php
<!DOCTYPE html>
<html lang="ja">
<meta charset="utf-8">
<title>恐竜登録テスト</title>
<h1>開始</h1>
<?php
require 'common_dino2.php';
$select_all = "select count(*) from tbl_dino";
$dsn = 'mysql:dbname=db_dino;host=localhost:3308;charset=utf8mb4';
$user = 'root';
$password = 'root123';
$dbh = new PDO($dsn, $user, $password);
$ret0 = 0;
$result_a=get_AllData($dbh,$select_all);
//$count
$count = $result_a->fetchColumn();
$ret0=$count;
echo $ret0.",".mt_rand();
?>
</html>
実はソース(データソース名)で重要な部分がある。
$dsn='mysql:dbname=db_dino;host=localhost:3308;charset=utf8mb4';
ローカルホストの後ろのポート番号が必要なのである。
このポート番号を記述しないと、認証エラーが起きる。
(私の場合はデフォルトのポート番号を変更したためかも)