Mariadb
自 debian 9 以來無法更改 mariadb 數據目錄
我已經在 debian 8 上完成了 1000 次,但自從我在 debian 9 上嘗試後沒有成功。
我想更改 mariadb 的預設數據目錄,這是來自處女 debian 9 VM 的過程:
apt-get update && apt-get install mariadb-server mariadb-client service mysql stop rsync -av /var/lib/mysql /home/ vi /etc/mysql/mariadb.conf.d/50-server.cnf grep -r datadir /etc/mysql/ /etc/mysql/mariadb.conf.d/50-server.cnf:datadir = /home/mysql [11:29:32]root@deb9: ~ # ls -la /home/mysql/ drwxr-xr-x 4 mysql mysql 4096 Sep 7 11:25 . drwxr-xr-x 3 root root 4096 Sep 7 11:25 .. -rw-rw---- 1 mysql mysql 16384 Sep 7 11:25 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Sep 7 11:25 aria_log_control -rw-r--r-- 1 root root 0 Sep 7 11:25 debian-10.1.flag -rw-rw---- 1 mysql mysql 12582912 Sep 7 11:25 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Sep 7 11:25 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Sep 7 11:25 ib_logfile1 -rw-rw---- 1 mysql mysql 0 Sep 7 11:25 multi-master.info drwx------ 2 mysql root 4096 Sep 7 11:25 mysql drwx------ 2 mysql mysql 4096 Sep 7 11:25 performance_schema service mysql start Sep 7 09:27:44 debian systemd[1]: Starting MariaDB database server... Sep 7 09:27:44 debian mysqld[15106]: 2017-09-07 11:27:44 140699007124032 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 15106 ... Sep 7 09:27:44 debian mysqld[15106]: 2017-09-07 11:27:44 140699007124032 [Warning] Can't create test file /home/mysql/deb9.lower-test Sep 7 09:27:44 debian mysqld[15106]: #007/usr/sbin/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13 "Permission denied") Sep 7 09:27:44 debian mysqld[15106]: 2017-09-07 11:27:44 140699007124032 [ERROR] Aborting Sep 7 09:27:44 debian systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
如您所見,錯誤是Permission denied 一些執行緒談論應用程序裝甲,但這個沒有在 processlist 上執行,我沒有觸及它的任何內容。
grep -r maria /etc/apparmor grep -r mysql /etc/apparmor
什麼都不返回。
我也不用 SELINUX…
謝謝你的幫助。
問題是已設置的
systemd
服務文件mariadb.service
ProtectHome = true
預設情況下。此設置阻止服務訪問*/home*、/root和*/run/user*目錄。
因此,要麼將
mysql
數據安裝到不同的位置,要麼將此功能設置為false
.要禁用此功能,最好使用
systemctl edit mariadb
打開環境變數中定義的編輯器EDITOR
。就放[Service] ProtectHome = false
在那個編輯器中。保存並關閉,
/etc/systemd/system/mariadb.service.d/override.conf
將創建一個覆蓋文件。之後systemctl daemon-reload
需要重新讀取設置。開始您的服務。