我已將單獨的硬碟安裝到/mnt/temp,並更改數據目錄指出這一點。我在 apparmor 中添加了正確的設置,並使用 mysql 工作了幾個小時。添加後performance_schema
到我的cnf並嘗試重新啟動 mysql,我收到錯誤:
[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 不允許您,請將以下兩行新增至 的底部/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 自較早的 Ubuntu 版本以來發生了變化。以前的使用者 ID 和群組 ID 現在看起來為hplip
和pulse-access
。由於資料目錄對我來說是掛載綁定(在另一個分割區上),因此它仍然具有分配已更改的先前 ID。