宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
MySQLはオープンソースのデータベースソフトになります。 無料で利用できるデータベースソフトとしてPostgreSQLがありますが、 それと人気を二分するデータベースソフトです。 人気の理由は高性能且つ高速で、しかも操作が比較的簡単な上、 Movable TypeやXoopsなど多くのウェブサイト構築ソフトウェアが サポートしているためです。またMySQLを利用する事でLAMP環境が 構築出来ます。 ※LAMPとはLinux、Apache、 MySQL、 PHPの略称 今回はそのMySQL専用のrootパスワードを忘れてしまった場合の 対処方法をご紹介します。
【この記事でわかること】
・MySQL を --skip-grant-tables オプションで起動することで認証をバイパスできる
・ALTER USER または UPDATE mysql.user でパスワードを変更し、flush privileges を実行する
・5.7 以降は authentication_plugin が caching_sha2_password に変わった点に注意が必要
・パスワード変更後は必ず通常モードで再起動して接続確認を行う

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら
MySQLのrootパスワードを再設定する 1.Mysqlの停止と起動をする [root@Tiger ~]# /etc/rc.d/init.d/mysql stop Shutting down MySQL. [ OK ] [root@Tiger ~]# /etc/rc.d/init.d/mysql start --skip-grant-tables Starting MySQL. 「/etc/rc.d/init.d/mysql stop」でMySQLを停止し、 「/etc/rc.d/init.d/mysql start --skip-grant-tables」で MySQLをセーフモードで起動します。 「--skip-grant-tables」オプションを付与してMySQLを動するで、 ユーザー権限のチェックをスキップした状態でMySQLサーバが起動します。 2.MySQLに接続する [root@Tiger ~]# /usr/local/mysql/bin/mysql -u root mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> MySQLユーザーのrootで接続します。「--skip-grant-tables」オプションで 起動しているため、パスワードが求められません。 3.MySQLのrootパスワードを設定する mysql> UPDATE user SET Password=PASSWORD('xxxxxxx') WHERE User='root'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye 「UPDATE user SET Password=PASSWORD('xxxxxxx') WHERE User='root';」で rootのパスワードを再設定します。「xxxxxxx」の箇所には新パスワードを 設定してください。 「FLUSH PRIVILEGES;」で設定を反映させ、「exit」でMySQLの接続を 切ります。 4.MySQLを通常モードで再起動します。 [root@Tiger ~]# /etc/rc.d/init.d/mysql restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ] MySQLを通常モードで再起動します。 5.新パスワードでログインできるか確認を行う [root@Tiger ~]# /usr/local/mysql/bin/mysql -u root -p Enter password:   ←3で設定したパスワードを入力します。 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 「Enter password:」に3の「xxxxxxx」で設定したパスワードを入力し ログインできれば成功です。 ※ 弊社教材を受講している方は、crontabで設定している  「check_process.pl」スクリプトを最初に無効にすることをお忘れなく。  詳しくは受講生専用サポートフォーラムに明記していますのでご確認ください。 今回ご紹介した環境はCentOS5.2 + MySQL 5.0.77になります。 バージョンやLinuxが異なる事で若干動作に違いが出る可能性が ありますので予めご了承ください。

MySQLのrootパスワードリセット手順、本番環境で試せる自信はありますか?

--skip-grant-tables の仕組みを理解しておくと、障害対応時に慌てずに済みます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。