【当ブログではアフィリエイト広告を利用しています】

[MySQL] root のパスワード忘れで困った時のパスワードリセット方法

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

MySQL を利用していてプログラムで利用するアカウント情報はわかるが root のパスワードがわからなくなってしまい、新しいデータベースも作れなくなってしまったなどのトラブルに役立つ情報です。
サーバー側のコントロールパネル等でリセットできる場合も多々あると思いますので、VPS等の手動でセットアップしたサーバーでの対処方法と思ってください。

当然ですが、セキュリティ上、サーバーの管理者(root)アカウントでログインできることが前提条件です。
(バックアップ&再インストールすれば解決できるのを楽しましょうという内容です)

念のため、既存のプログラム等で root アカウントで MySQL に接続していないかも確認してみてください。
後からrootで接続しているプログラムがあって、その設定ファイル見ればパスワードが載っていたなんて事も無いとは言えませんので。。。

◎MySQL の root パスワードのリセット手順

  1. 稼働中のMySQLを停止します
    init.d > ./mysqld stop
    
  2. 認証情報を無効にした状態でMySQLを起動する
    > mysqld_safe --skip-grant-tables &
    
  3. MySQLに接続して、権限テーブルのrootパスワードを上書きします
    > mysql
    mysql> UPDATE mysql.user SET Password=PASSWORD('#新パスワード#') WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit
    
  4. MySQLを再起動します
    init.d > ./mysqld stop
    init.d > ./mysqld start
    

 
◎実施環境
CentOS:6.4
MySQL:5.6

 
パスワードを忘れないようにしておくのは当然ですが、回復するにしても少しでも無駄な作業はしないようにしたいものです。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。