Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thay đổi thư mục dữ liệu MySQL sang vị trí khác trên Ubuntu 16.04


Hướng dẫn chuyển thư mục dữ liệu MySQL (datadir) sang vị trí mới (ví dụ /mnt/data_vol/mysql) khi database tăng nhanh hoặc lý do bảo mật.

Điều kiện tiên quyết

  • Ubuntu với user non-root có sudo.
  • MySQL đã cài và chạy.
  • Volume mới gắn tại /mnt/data_vol.

Thay đổi vị trí thư mục dữ liệu

Xác định datadir hiện tại:

mysql> select @@datadir;
+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+

Dừng MySQL và kiểm tra trạng thái:

$ sudo systemctl stop mysql
$ sudo systemctl status mysql

Di chuyển dữ liệu bằng rsync (giữ permission, verbose):

$ rsync -av /var/lib/mysql /mnt/data_vol/

Đổi tên thư mục cũ để backup:

$ sudo mv /var/lib/mysql /var/lib/mysql_backup

Sửa file cấu hình /etc/mysql/mysql.conf.d/mysqld.cnf, thay datadir:

datadir = /mnt/data_vol/mysql/

Cấu hình AppArmor

Sửa /etc/apparmor.d/tunables/alias, thêm dòng:

alias /var/lib/mysql/ -> /mnt/data_vol/mysql

Khởi động lại AppArmor, tạo thư mục tối thiểu để script chạy:

$ sudo mkdir -p /var/lib/mysql/mysql

Khởi động MySQL và kiểm tra:

$ sudo systemctl start mysql
$ sudo systemctl status mysql

Xác nhận datadir mới:

mysql> select @@datadir;
+----------------------+
| @@datadir            |
+----------------------+
| /mnt/data_vol/mysql/ |
+----------------------+

Xóa backup cũ sau khi xác nhận:

$ sudo rm -rf /var/lib/mysql_backup

Các bước trên giúp di chuyển an toàn thư mục dữ liệu MySQL sang vị trí mới trên Ubuntu 16.04.