MySQL
CentOS

【MySQL】ERROR 1045 の対処法

More than 3 years have passed since last update.


状況

研究でWebサーバーを構築している際に,MySQLをインストールした直後に,起動すると下記のようなエラーが発生した.


error

# mysql -u root -p

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

このときに私が行った対処法を下記に記す.



対処法


MySQLの停止

MySQLが稼働している場合は,一旦停止する.


コマンド

# service mysql stop



オプション付きで起動

MySQLを権限システムを使用せずに起動する.


コマンド

# mysql_safe --skip-grant-tables &



mysqlコマンドプロンプトに入る


コマンド

# mysql -u root



rootへの権限設定

現状の設定の確認


コマンド

> use mysql;

Database changed
> select * from user;
Empty set (0.00 sec)

rootユーザに全てのDBに関する権限を設定し,PWを指定.

念のためuserテーブルを全削除してから実行する.

ここでは実行結果は省略する.

なお,grantコマンドのPWとはMySQLの起動時のパスワードとなるので,任意で設定してください.


コマンド

> truncate table usr;

> flush privileges;
> grant all privileges on *.* to root@localhost by 'PW' with grant option;
> flush privileges;


MySQLの再起動

これでrootユーザへの権限設定ができましたので,MySQLを通常起動する.


コマンド

> quit;

# service mysql start

これで,私はMySQLを起動することができました.