ログインできない場合(rootユーザーのパスワード忘れ)

rootユーザーのパスワード忘れなどが原因で、以下のようにMySQLにログインできなくなってしまったときの対処方法です。

$ mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mysqldを停止

CentOS6で mysqld を停止するには以下のようにします。

$ sudo service mysqld stop
Stopping mysqld:                                           [  OK  ]

CentOS7以上であれば、以下のようになります。

sudo systemctl stop mysqld.service

セーフモードでMySQLを起動

mysqld_safe 経由で mysqld を起動させます。

$ sudo mysqld_safe --skip-grant-tables &
[1] 5833
2018-12-08T06:45:53.581448Z mysqld_safe Logging to '/var/log/mysqld.log'.
2018-12-08T06:45:53.619291Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

--skip-grant-tablesオプション をつけることで認証処理がスキップされるようになります。
つまり、パスワードなしでログインできるようになります。

& をつけているのでバックグラウンドでプロセスが起動します。

参考)
https://dev.mysql.com/doc/refman/5.6/ja/mysqld-safe.html

パスワード書き換え

MySQLにログイン

ユーザー名 パスワード なしでログインできます。

$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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>

DB変更

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

ユーザー情報確認

mysql> SELECT user, host, authentication_string FROM user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| mysql.session | localhost | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| mysql.sys     | localhost | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

rootユーザのパスワード更新

mysql> UPDATE `user` SET `authentication_string` = PASSWORD('new_password') WHERE `user` = 'root';
Query OK, 1 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> quit
Bye
MySQL5.6以下の場合
authentication_string ではなく、 password になります。

UPDATE `user` SET `password` = PASSWORD('new_password') WHERE `user` = 'root';

通常モードでMySQLを起動

通常モードで mysqld を起動させます。

$ sudo service mysqld restart
2018-12-08T06:49:21.884937Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[1]+  Done                    sudo mysqld_safe --skip-grant-tables

この時、セーフモードで起動させていたプロセスは停止されます。

rootユーザーでログイン

書き換えたパスワードでログインできました。

$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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> 
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。