CentOS7+MySQL8.0でrootのパスワード変更時にエラーが出た

CentOS7+MySQL8.0でrootのパスワード変更時にエラーが出た

WordPress導入に向けてPHP7.3、MySQL8.0を設定していた時に微ハマりしたことメモ。

MySQLを導入したら最初にrootのパスワードを変更する必要がある。
ネットで調べると

 mysql> SET PASSWORD = PASSWORD('任意のパスワード'); 

こんな感じで書いてあるサイトが多いが、これを実行すると、

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'PASSWORD('新しいパスワード')'

的なエラーが出る。
「文法がおかしいから使うバージョンに対応したマニュアルを確認してください。」と言われているので公式のドキュメントを確認。
公式ドキュメントによると、

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

が正解のようなので、この通りやったらうまくいった。

MySQL8.0の場合下記の項目にも注意が必要。
・パスワードは大文字/小文字/数字/記号の全てを含み8文字以上でなければならない
・認証方法のデフォルトが”caching_sha2_password”に変更されているが、WordPressに使用する場合は”mysql_native_password”に戻す必要がある。

目次

まとめ

バージョンによって結構仕様が変わるということがわかった。
ネットの情報でうまくいかないときはは公式ドキュメント見てみることが重要。