別の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 のデータ ディレクトリを (この例では/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 がまだ残っています。