LoginSignup
12
11

More than 3 years have passed since last update.

MySQLの初期パスワードが/var/log/mysqld.logに出力されないときの対応(CentOS7 + MySQL8.0におけるパスワードリセット)

Posted at

AzureのCentOS7.5にMySQL8.0をインストールした際、/var/log/mysqld.logに初期パスワードが出力されなかったので(パーミッションの問題?)、その際の対応をメモ。

結論

  • パスワードをリセットするしかない

やり方

とりあえずmysqldを停止させる。

sudo systemctl stop mysqld

mysqldをセーフモード?で起動させる。
CentOS7環境ではmysqld_safeコマンドは使えないみたいなので環境変数で起動オプションを設定。

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

mysqldを起動させる。

sudo systemctl start mysqld &

コンソールが戻ってくるよう&をつけている。

rootでログイン

mysql -u root

パスワードを一度nullでリセット。

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

一応反映。

FLUSH PRIVILEGES;

mysqlを抜けて、mysqldを停止させる。

sudo systemctl stop mysqld

環境変数をリセット。

sudo systemctl unset-environment MYSQLD_OPTS

mysqldを起動。

systemctl start mysqld

パスワード無しで入れることを確認。

sudo mysql -u root -p

あとは、初期状態ならmysql_secure_installation等でパスワードを設定するか、

mysql_secure_installation

Alterでパスワードを変更する。

ALTER USER 'root'@'localhost' identified BY 'hogehoge';

以上。

12
11
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
12
11