2013-07-30 38 views
1

我想移動的MySQL數據目錄,這裏是我的步驟:無法移動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)

我爲768,16現在做什麼?

+0

你是否將新的mysql datadir目錄傳給用戶mariadb正在運行? (或至少給予寫入權限) – Gryphius

+0

@Gryphius,我把它改成我自己的主目錄,我需要給它更多的權限嗎? – Elderry

+1

'chown mysql.mysql/home/elderry/db /' – Gryphius

回答

1

看來你已將數據庫移動到您的主目錄。我認爲,當你通過服務管理器啓動mysqld時(在你的系統中),它將作爲一個非特權用戶啓動(最有可能的是mysql)。我強烈懷疑此用戶有權訪問用戶的homedir。

因此,解決方案要麼將您的datadir移動到更合適的位置,如/var/lib/mysql,並將此目錄切換到運行mysql的用戶。或者你給mysql用戶權限,他可以訪問的homedir。

+0

我更喜歡賦予mysql用戶權限並檢查'/ home/elderry/db'中的文件,這些文件沒有所有者名稱,只有所有者組'mysql'。我應該創建一個名爲'mysql'的用戶,然後給他權限嗎? – Elderry

+0

如果您以標準方式安裝mariadb(pacman -S mariadb),您已擁有mysql用戶,並且這些文件應屬於該用戶。還要檢查目錄本身,而不僅僅是其中的文件。 – Gryphius

0

當安裝MariaDB時,它會自動創建擁有所有數據文件的用戶和組mysql,因此如果移動數據目錄,請確保新數據目錄中的所有文件夾,子文件系統,文件都由用戶mysql和組mysql擁有。

0

還要檢查你的分區是不是滿了,這是我的情況。

由於未知原因,將數據移動到另一個分區也不起作用。

因此,爲了快速修復,而不是搞亂llvm或gparted,我減少了我的/swapfile大小。