以前書いた、GitHub Actionsでインストール済みMySQLを使う方法で起動したMySQLは、lower_case_table_names
が0
になっている(Linuxではこれがデフォルト)。
lower_case_table_names
を1
に変更したければ、/etc/mysql/mysql.conf.d/mysqld.cnf
にlower_case_table_names = 1
を追記して起動すれば良いだろうと気軽に考えてやってみたところ、MySQLが起動せず。
/var/log/mysql/error.log
を確認したところ、
[ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server (‘1’) and data dictionary (‘0’).
とのエラー。 後から変更はできない、と。
そこでmysqld --initialize
を使って初期化するところからワークフローに組み込む。
mysqld.cnf
に追記echo 'lower_case_table_names = 1' | sudo tee -a /etc/mysql/mysql.conf.d/mysqld.cnf
- データディレクトリ再作成
sudo rm -rf /var/lib/mysql sudo mkdir /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql sudo chmod 750 /var/lib/mysql
mysqld initialize
sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize-insecure --lower_case_table_names=1
- MySQL起動
sudo systemctl start mysql.service
- 結果確認
mysql -u root -e "SHOW VARIABLES LIKE 'lower_case_table_names';"
Variable_name Value lower_case_table_names 1
ひとまずの、というのはrootのパスワード設定するとこまでたどり着かなかったので。 CI目的で使う分には問題ないかな、と。