「Access denied for user」の原因と解決方法
2025/05/17 15:27:11
事象:Ubuntuにて、MySqlインストールして使おうとしたら、「Access denied for user」というエラーが表示される

下記のコマンドで、UbuntuでMySQLインストール後にmysql -u root -p でログインしようとすると Access denied for user 'root'@'localhost' と出て弾かれる。

$ sudo apt update
$ sudo apt install mysql-server

解決方法

解決策は簡単です。

MySQL 5.7以降では、MySQLのrootユーザはデフォルトではそもそもパスワードによるログインができないようになっています。
パスワードの代わりに、
システムのrootユーザ(ここではOSがUbuntuなのでUbuntuのrootユーザ)情報でログインする必要があります。
すなわち、以下のようにsudoでMySQLのrootユーザとしてもMySQLにログインできます。

1.RootユーザでMysqlにログインする

sudo mysql

2.下記のコマンドで、example_user を作成する

CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

3.このユーザーに example_database データベースに対する権限を付与します。

GRANT ALL ON example_database.* TO 'example_user'@'%';

これにより、example_user ユーザーに example_database データベースに対する完全な権限が付与されますが、

このユーザーがサーバー上の他のデータベースを作成または変更することはできなくなります。

次のコマンドで MySQL シェルを終了します。

exit

4.今回はカスタム ユーザー資格情報を使用して MySQL コンソールに再度ログインし、新しいユーザーに適切な権限があるかどうかをテストします。

mysql -u example_user -p

このコマンドの -p フラグに注目してください。

これにより、example_user ユーザーの作成時に使用したパスワードの入力が求められます。

MySQL コンソールにログインしたら、example_database データベースにアクセスできることを確認してください。

SHOW DATABASES;

参考記事

 

Ubuntu 20.04にMySQLをインストールする方法

https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04-ja 

 https://www.digitalocean.com/community/tutorials/how-to-install-lamp-stack-on-ubuntu#step-5-testing-php-processing-on-your-web-server 

关注 收藏