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 に変わった点に注意が必要
・パスワード変更後は必ず通常モードで再起動して接続確認を行う
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
暗記不要・1時間後にはサーバーが動く
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 /
詳細はこちら
この記事を書いた人
宮崎 智広(みやざき ともひろ)
株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。
趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。
無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます