MySQLに関してしっかりパスワードをチェックしていれば問題ありませんが、中にはrootパスワードをわすれた!なんてこともあるでしょう。
そんなときはsafe modeで実行することでrootのパスワードを変更することができます。
なお環境としては下記を前提にしています。
CentOS 7系
MySQL 5.6以上
Contents
safe modeの起動
1 2 3 |
systemctl stop mysqld systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" systemctl start mysqld |
この後mysqlにパスワードなしでログインできるようになります。
1 2 3 4 5 6 7 8 9 |
#これでログイン mysql -u root #データベースmysqlを選択 use mysql #パスワードを変更して反映 UPDATE user SET authentication_string=password('新しいパスワード') WHERE user='root'; or UPDATE user SET Password = PASSWORD('新しいパスワード') WHERE user = 'root' flush privileges; |
それ以外に/etc/my.cnfに
1 2 3 |
[mysqld] ・・・・・ skip-grant-tables |
と書いても再起動しても行けるようです。
正常なパスワードを反映し終わったらskip–grand–tablesは消しましょう。(set-enviroment=””で再読み込みすればOKです。設定ファイルの場合には消して再起動すればOKです。)
参考リンク
MySQL 5.7でrootユーザのパスワードを再設定
teratail – CentOS7.2でのMySQLインストールでの問題