MySQL rootパスワード忘れてリセット

2020-05-15 15:16:31 | データベース

ローカルのmacOSMySQLを入れていて、長らく放置していた場合

完全にパスワード忘れている場合が多いと思います。

mysqlコマンドを使って実行してもパスワードが思い出せず

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

Access deniedされてしまいます。

このような場合、MySQLのサービスを一旦停止しそのあと--skip-grant-tablesで起動するとmysqlコマンドでで入ることができます。

mysql.server stop 
mysql.server start --skip-grant-tables

mysqlコマンドでログインしたあとrootのパスワードを下記のコマンドでリセットします。

use mysql
UPDATE mysql.user SET authentication_string=null WHERE User='root';

mysql.serverを再起動し

mysql -uroot -p  

上記のmysqlコマンドでパスワード指定無しでログインできるようになりました。

 

下記のコマンドで新しいパスワードを設定します。

ALTER USER 'root'@'localhost' identified BY '新しいパスワード'; 

mysqlが--skip-grant-tablesのままだと下記のようなエラーが出ます

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

macOSでmysqlを簡単にインストールする方法

2020-05-07 15:35:29 | データベース

Web系の仕事はどうしてもPHP言語とMySQLデータベースを使った仕事が多いです。

ですので、MySQLをローカルに入れて仕事がしたいです。

macOSでもMySQLを入れることはできるのですが、Homebrewと言う管理ツールを使うとmacOSのコマンドで簡単にインストールが可能です。

ターミナルですべて操作するので先にターミナルを起動します。

Homebrewインストールは下記のようにターミナルにコマンドを入れるだけです。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

これでHomebrewはインストールできていると思うのでそのあと下記コマンドでMySQLをインストールします。

brew install mysql

あとはMySQLを起動

mysql.server start

上記のように表示されればMySQLは動いています。

コマンドでmysqlと入力すると下のようにローカルMySQLに接続できます。

mysqlコマンドが失敗する場合、ターミナルコマンドで一旦MySQLを停止して

mysql.server stop

--skip-grant-tablesオプションを付けて起動します。

mysql.server start --skip-grant-tables

MySQLが起動したら再度ターミナルからmysqlコマンドを試してみると接続できます。