twitter facebook

Ubuntu20 と MySQL8 の root ログインについて

MySQL5.x系からいろいろとまた変わったようです。
インストールや初期設定は簡単です。

MySQLのインストール

sudo apt install mysql-server
インストール完了
mysql --version
mysql Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

MySQLの初期設定

sudo mysql_secure_installation // 対話形式で進みます。
ここらへんまでは MySQL5.xと一緒ですが
sudo mysql
だけで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 でログインできたりできました。
AUTHOR
@hiropon
最終更新日 2021/05/06
FAVORITE good stock
LINK TAG
記法を見る