この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
MySQL を利用していてプログラムで利用するアカウント情報はわかるが root のパスワードがわからなくなってしまい、新しいデータベースも作れなくなってしまったなどのトラブルに役立つ情報です。
サーバー側のコントロールパネル等でリセットできる場合も多々あると思いますので、VPS等の手動でセットアップしたサーバーでの対処方法と思ってください。
当然ですが、セキュリティ上、サーバーの管理者(root)アカウントでログインできることが前提条件です。
(バックアップ&再インストールすれば解決できるのを楽しましょうという内容です)
念のため、既存のプログラム等で root アカウントで MySQL に接続していないかも確認してみてください。
後からrootで接続しているプログラムがあって、その設定ファイル見ればパスワードが載っていたなんて事も無いとは言えませんので。。。
◎MySQL の root パスワードのリセット手順
- 稼働中のMySQLを停止します
init.d > ./mysqld stop
- 認証情報を無効にした状態でMySQLを起動する
> mysqld_safe --skip-grant-tables &
- MySQLに接続して、権限テーブルのrootパスワードを上書きします
> mysql mysql> UPDATE mysql.user SET Password=PASSWORD('#新パスワード#') WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit
- MySQLを再起動します
init.d > ./mysqld stop init.d > ./mysqld start
◎実施環境
CentOS:6.4
MySQL:5.6
パスワードを忘れないようにしておくのは当然ですが、回復するにしても少しでも無駄な作業はしないようにしたいものです。