はじめに
CentOS7ではmysqld_safeが利用できず従来の方法ではリセットできない。
対応方法
1.MySQLを停止する
systemctl stop mysqld
2.起動時オプションを設定
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3.MySQL起動
systemctl start mysqld
4. MySQLにログインしパスワードを初期化
mysql -u root
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new-password') -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit
5. MySQLを停止し、起動オプション設定を元に戻し再度起動する
systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS systemctl start mysqld
6. 4で設定したパスワードでログインする
mysql -u root -p
参考元:
https://stackoverflow.com/questions/33510184/change-mysql-root-password-on-centos7