2016/04/06更新

[サーバー] MySQL5.7でrootのパスワードを忘れた場合のリセット方法(CentOSやAmazonLinuxの場合)

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
今日はMySQLのパスワードを忘れた場合に、リセットする方法をブログに書きたいと思います。

画像


目次




MySQL5.7でrootユーザーのパスワードをリセットする

MySQL5.7におけるパスワードリセット方法はこちら(英語)の内容を参考にリセットすることができます。悋気先の情報では、
  • Windows系の場合
  • Unix系の場合
  • 標準的なリセット方法
と3パターンが掲載されていますが、このブログでは「標準的なリセット方法」を行いたいと思います。


MySQLを停止する

まずは、MySQLサーバーを停止します。
$ service mysqld stop
Stopping mysqld:                                           [  OK  ]
その後、MySQLのプロセスが残っていないかを確認します。
$ ps aux | grep mysql
root      2888  0.0  0.0 110456  2124 pts/0    S+   03:24   0:00 grep --color=auto mysql
もし、MySQLのインスタンスが残っている場合には、killコマンドで消し去ります。
$ kill [プロセスID]
これで、MySQLの停止ができました。


MySQLをオプション付きで起動する

次にパスワード変更を行うために、以下2つのオプションをつけてMySQLを起動します。
# --skip-grant-tables : 匿名ユーザーがパスワードなしにログインできて、かつ全権限を持つ
# --skip-networking   : リモートからの接続は許可しない
$ service mysqld start --skip-grant-tables --skip-networking
Starting mysqld:                                           [  OK  ]
これでパスワード変更できる状態を作りました(サーバーにログインできればだれでもMySQLの全権限にアクセスできるので、危険な状態です)。


パスワードを変更する

Anoymousユーザーでログインできるようになったので、そのユーザーでログインしてrootユーザーのパスワードを変更します。
# ログイン
$ mysql

# パスワードを変更する
# 'MyNewPass'のところを任意のパスワードにする
mysql> FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
無事にパスワード変更が終わったら、とりあえず危険なサーバー状態は再起動します。
$ service mysqld stop
Stopping mysqld:                                           [  OK  ]
$ service mysqld start
Starting mysqld:                                           [  OK  ]


rootでログインしてみる

最後にrootでログインできることを確認します。
$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.11 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
これで無事にrootのパスワードをリセットすることができました。



参考資料

今回は以下の資料を参考しました。ありがとうございます。

MySQL :: MySQL 5.7 Reference Manual :: B.5.3.2 How to Reset the Root Password(英語)



最後に

MySQLのrootパスワードを変更するなんてよっぽどのことですが、ちょっと使う機会があったのでブログに残しました。MySQLの運用もちょっとずつ身につけていきたい今日この頃です。

最後になりますが本ブログでは、フロントエンド・Python・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

[NodeJS] nodeで例外処理を書いて、最低限落ちないサーバー実装を行うException Handler
[NodeJS] requestモジュールを使って、サーバーから画像ファイルをダウンロードする
[サーバー] さくらVPSのセットアップ② 〜 nginxのインストール、Jenkinsのインストール、nginxとJenkinsの接続(リバースプロキシ)、nginxとPHP、パケットフィルタリング、など 〜
[サーバー] さくらVPSのセットアップ① 〜 OSの確認、ユーザー作成、Git、Ruby導入 〜
[サーバー] AmazonLinuxにMySQL5.7をインストールする
[サーバー] MySQL5.7でrootのパスワードを忘れた場合のリセット方法(CentOSやAmazonLinuxの場合)
[Go] net/httpパッケージでWebサーバー(handlerの書き方、静的ファイル配信、Basic認証、など)
RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。