LoginSignup
3
3

More than 5 years have passed since last update.

brewでインストールしたMySQLのパスワードを紛失してリセットした話

Last updated at Posted at 2016-06-09

はじめに

MySQLのパスワードを紛失しました :))))))

公式のやりかたでうまく行きませんでした

MySQL公式によると次のやり方で出来るそうで下がうまく行きませんでした。

MySQL 5.7.6 and later:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 and earlier:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

要約するとmysql起動時に特定のSQLを実行するようにしてパスワードをリセットしましょう、ということでした。

Mac OS Xのbrewではmysql.serverという起動スクリプトで色々とできるのでそちらから設定しました。

$ mysql.server --init-file=/path/to/init.sql

しかしながら動きません :(

データベースのクリア

しょうが無いのでデータベースを飛ばしてでもリセットすることに染ました。
以前はデータDIR(datadir)を消してmysql_install_dbを実行すれば良かったのですが、最近はうまく行かないようです。

$ rm -rf /usr/local/var/mysql

$ mysql_install_db                  
2016-06-09 14:46:02 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-06-09 14:46:02 [ERROR]   The data directory needs to be specified.

どうやら最近はmysqld --initializeを利用するようです。

$ mysqld --initialize                                       ⏎ master
中略
2016-06-09T05:46:11.831427Z 1 [Note] A temporary password is generated for root@localhost: 0tPB.HpR6+++

ちゃんとうまく行きました。

しかしながらここで発行されるパスワードは一般に使うことが出来ず、必ずリセットしなければ成らないようです。(MySQLWorkbenchなどでこのパスワードで接続をしようとすると弾かれちゃいます)

$ mysql -u root -p
Enter Password:
mysql > alter user 'root'@'localhost' identified by 'password';

ここで新しいパスワードを設定するとうまくいけました。

やったね!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3