データディレクトリを変更した後、MySQL が起動しない (14.04、mysql 5.7)

データディレクトリを変更した後、MySQL が起動しない (14.04、mysql 5.7)

別のHDDを/mnt/tempにマウントし、変更しましたデータディレクトリperformance_schemaこれを指摘するために、apparmorに正しい設定を追加し、数時間mysqlで作業しました。マイ.cnfMySQL を再起動しようとすると、次のエラーが発生します:

[Warning] Can't create test file /mnt/temp/some_dir/blah.lower-test
...
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
...

それ以来chmod -R 777 /mnt/temp、アプリ アーマーをシャットダウンし、パーティションを再マウントし、パーティションと対話するすべてのプロセスを手動で終了し、performance_schema構成から削除しました。

助言がありますか?

答え1

からMySQL を学ぶ: AppArmor と MySQL

MySQL のデータ ディレクトリを (この例では/data/directory) に再配置したいが、AppArmor でそれができない場合は、 の末尾に次の 2 行を追加します/etc/apparmor.d/local/usr.sbin.mysqld

/data/ r,
/data/** rwk, 

...そして、AppArmor プロファイルをリロードします。

sudo service apparmor reload 

答え2

私も同じ問題に遭遇しましたが、所有権の問題だとわかりました (これにより、AppArmor に問題があるという錯覚も生じました)。

これを試すことができます (/var/lib/mysql一致しない場合は変更してください):

sudo chown -R mysql /var/lib/mysql
sudo chgrp -R mysql /var/lib/mysql

説明の補足として、MySQL のユーザー ID とグループ ID は、以前の Ubuntu リリースから変更されています。以前のユーザー ID とグループ ID は、現在、hplipとのようになっていますpulse-access。データ ディレクトリは私にとってマウント バインド (別のパーティション上) であるため、割り当てが変更された以前の ID がまだ残っています。

関連情報