MySQL8の初期化方法

概要

久しぶりにmysqlの初期化をしようとしたらmysql_install_dbが無くなってたのでメモ。

mysql_install_dbの変更

どうやらMySQL5.7からmysql_install_dbではなく、mysqld –initializeを使用するようだ。

MySQLのデータディレクトリ(デフォルトは/var/lib/mysql)の中身が存在している場合はエラーになるため、実行前に全て削除しておく必要がある。

データディレクトリを削除するとDBのデータは削除されるため、必要であれば事前にバックアップ推奨。

初期化実行

# mysqld  --initialize --user=mysql

20191115更新
--user=mysqlを追加。rootでの実行のみ有効
このオプションなしで実行した場合/var/lib/mysql以下のファイルが所有者rootになるので、mysql起動時にエラーとなる。
rootで作成済みであれば/var/lib/mysql以下のファイルをmysqlに所有者を変更する事で起動可能

rootのパスワードは自動設定される。/var/log/mysqld.logを参照。

パスワード自動設定無しで初期化する場合は以下のコマンドを実行。

# mysqld --initialize-insecure

以上