##状況
研究で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を起動することができました.