Ubuntu20 と MySQL8 の root ログインについて
MySQL5.x系からいろいろとまた変わったようです。
インストールや初期設定は簡単です。
MySQLのインストール
sudo apt install mysql-server
mysql Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
MySQLの初期設定
sudo mysql_secure_installation
// 対話形式で進みます。
だけでmysqlにログインできてしまいます。 -p などのパスワード関係なしに。
ざっくり調べると、root アカウントや sudo アカウントだと パスワード入力しなくてもmysqlにログインできてしまうのがデフォのようです。 管理者MySQLユーザーのデフォルトの認証方法が、unixsocket になったからだとか。
このままだとMySQLのrootアカウントで今まで動かしていたPHPスクリプトやphpMyAdminなどが動かないとのことです。
解決策
なので パスワード認証をするユーザーを以下のように作成+権限を付与します。 XXXはユーザー、YYYはパスワードです。
CREATE USER 'XXX'@'%' IDENTIFIED WITH mysql_native_password BY 'YYY';
GRANT ALL ON *.* TO 'XXX'@'%';
これで PHPアプリケーションからも接続できるようになったり、phpMyAdmin でログインできたりできました。