[英]Fail to move mysql's data directory
我正在嘗試移動mysql的數據目錄,這是我的步驟:
show variables like 'datadir'
來知道我的數據datadir
是/var/lib/mysql/
cd /var/lib/mysql/
# mv * /home/elderry/db/
gvim /etc/mysql/my.cnf
[mysqld]
部分中添加以下行: datadir = /home/elderry/db/
# systemctl start mysqld
Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.
systemctl status mysqld.service
結果:
mysqld.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled)
Active: activating (start-post) (Result: exit-code) since Tue 2013-07-30 14:31:53 CST; 13s ago
Process: 14174 ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid (code=exited, status=1/FAILURE)
Control: 14175 (mysqld-post)
CGroup: name=systemd:/system/mysqld.service
└─control
├─14175 /bin/sh /usr/bin/mysqld-post
└─14293 sleep 1
Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [Warning] Can't create test file /home/elderry/db/Kanone.lower-test
Jul 30 14:31:53 Kanone mysqld[14174]: [71B blob data]
Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [ERROR] Aborting
Jul 30 14:31:53 Kanone mysqld[14174]: 130730 14:31:53 [Note] /usr/bin/mysqld: Shutdown complete
Jul 30 14:31:53 Kanone systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
如果我想手動啟動mysql: mysql -u root -p
輸出:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
我現在應該做什么?
看來您已將datadir移至主目錄。 我認為,當通過服務管理器(在您的情況下為systemd)啟動mysqld時,它將以非特權用戶身份啟動(很可能是mysql
)。 我強烈懷疑該用戶是否有權訪問elderry
用戶的homedir。
因此,解決方案要么將您的datadir移至/var/lib/mysql
等更合適的位置,然后將此目錄授予運行mysql的用戶。 或者,您賦予mysql用戶特權,使他可以elderry
的homedir。
安裝MariaDB時,它會自動創建擁有所有數據文件的用戶和組mysql,因此,如果移動數據目錄,請確保新數據目錄中的所有文件夾,子文件和文件均由用戶mysql和組mysql擁有。
還要檢查您的分區是否未滿,這就是我的情況。
由於未知的原因,將數據移動到另一個分區也無法正常工作。
因此,為了快速解決問題,我減少了/swapfile
大小,而不是弄亂llvm或gparted。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.