Debian 9 (stretch) で MySQL 8.0 の設定ファイルを /etc/my.cnf にする
Debian 9 へ MySQL APT Repository から MySQL 8.0 をインストールすると、my.cnf は alternatives で管理されて、サーバ設定とクライアント設定が複数のファイルで管理される。
複数のファイルで管理すると「この設定、どのファイルから読まれてるの?」問題が結構あるので、Debian 系のお作法からは外れるかもしれないけど /etc/my.cnf にすることにした。
デフォルトの設定ファイル
alternatives で管理されていて、/etc/mysql/mysql.cnf へのシンボリックリンクになっている。
$ ls -al /etc/mysql/my.cnf lrwxrwxrwx 1 root root 24 5月 6 17:54 /etc/mysql/my.cnf -> /etc/alternatives/my.cnf $ ls -al /etc/alternatives/my.cnf lrwxrwxrwx 1 root root 20 5月 6 17:54 /etc/alternatives/my.cnf -> /etc/mysql/mysql.cnf
/etc/mysql/mysql.cnf は /etc/mysql/mysql.conf.d/mysqld.cnf(サーバ設定) と /etc/mysql/conf.d/mysql.cnf(クライアント設定) を include するようになっている。
$ grep 'include' /etc/mysql/mysql.cnf ..... !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
起動時に読み込む設定ファイルを /etc/my.cnf に設定
1) /etc/my.cnf を準備する*1
$ sudo cp -a /etc/mysql/mysql.conf.d/mysqld.cnf /etc/my.cnf
2) alternatives 設定を変更する
$ sudo update-alternatives --remove-all my.cnf $ sudo update-alternatives --install /etc/mysql/my.cnf my.cnf /etc/my.cnf 200
3) mysqld を再起動する
$ sudo systemctl restart mysql.service