Mysql

數據庫目錄儲存已滿,需要更改連結到新分區

  • August 22, 2018

我的 mysql 數據庫目錄大小已滿。所以我想把它改成另一個有大量空間的分區。我使用的數據庫版本是 MySQL 5.7.23,作業系統是 CentOS 7。

在搜尋網際網路後,我得到了 2 個解決方案。第一個如下:

首先,我創建了一個指向新驅動器的 Systemlink。然後我嘗試啟動mysql,每次嘗試啟動都會失敗。刪除系統連結後,它將啟動。

我得到的錯誤是

[Note] InnoDB: Highest supported file format is Barracuda.
2018-08-21T10:08:04.839330Z 0 [ERROR] InnoDB: Operating system error number 
13 in a file operation.
2018-08-21T10:08:04.839349Z 0 [ERROR] InnoDB: The error means mysqld does 
not have the access rights to the directory.
2018-08-21T10:08:04.839360Z 0 [ERROR] InnoDB: os_file_readdir_next_file() 
returned -1 in directory ./, crash recovery may have failed for some .ibd 
files!
2018-08-21T10:08:04.839385Z 0 [ERROR] InnoDB: Plugin initialization aborted 
with error Generic error
2018-08-21T10:08:05.440529Z 0 [ERROR] Plugin 'InnoDB' init function returned 
error.
2018-08-21T10:08:05.440597Z 0 [ERROR] Plugin 'InnoDB' registration as a 
STORAGE ENGINE failed.
2018-08-21T10:08:05.440610Z 0 [ERROR] Failed to initialize builtin plugins.
2018-08-21T10:08:05.440617Z 0 [ERROR] Aborting

2018-08-21T10:08:05.440665Z 0 [Note] Binlog end
2018-08-21T10:08:05.440770Z 0 [Note] Shutting down plugin 'CSV'
2018-08-21T10:08:05.441349Z 0 [Note] /usr/sbin/mysqld: Shutdown complete

其次,https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04我跟著這個網址和之後,當嘗試啟動 mysql 時,繼續收到此錯誤無法連接到本地主機(111)(錯誤:2003)。這次 mysqld.log 文件中沒有顯示任何內容

這是關鍵:

2018-08-21T10:08:04.839360Z 0 [ERROR] InnoDB: os_file_readdir_next_file() 
returned -1 in directory ./, crash recovery may have failed for some .ibd 
files!

它說,它無法遍歷包含數據庫文件的目錄,錯誤程式碼為-1。錯誤 -1 表示

沒有權限

執行 mysql 伺服器的使用者應該有權訪問該目錄。在大多數 Linux 上,命令是:chown mysql:mysql -Rc /var/lib/mysql作為 root。

引用自:https://dba.stackexchange.com/questions/215546