「Access denied for user」の原因と解決方法
2025年05月17日
閲覧数:33
事象: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 



关注 收藏