Dời thư mục data của MariaDb/MySQL

  • Thư mục dữ liệu của MariaDB/MySQL nên đặt ở partition không chứa hệ điều hành.
  • Các file cấu hình của MariaDB/MySQL có thể tên/vị trí khác nhau trên Debian/Ubuntu nhưng cách làm tương tự.

Thí dụ sau được thực hành với mariadb trên ubuntu.

# Tạo thư mục data mới
newDatadir='/mnt/mysql-data'
[ ! -d "$newDatadir" ] && sudo mkdir -p "$newDatadir"
chown -R mysql:mysql "$newDatadir"

# Dừng mariadb
sudo systemctl stop mariadb

# Sao chép dữ liệu về thư mục data mới
sudo rsync -av --delete /var/lib/mysql "$newDatadir"
sudo mv /var/lib/mysql /var/lib/mysql.bak

# Sửa file cấu hình
sudo sed -i "s|.*datadir.*|datadir=${newDatadir}/mysql|" /etc/mysql/mariadb.conf.d/50-server.cnf
sudo sed -i "s|.*\(alias /var/lib/mysql/\).*|\1 -> ${newDatadir}/mysql/,|" /etc/apparmor.d/tunables/alias

# Khởi động lại apparmor
sudo systemctl restart apparmor

# Tạo thư mục giả
sudo mkdir /var/lib/mysql/mysql -p

# Khởi động lại mariadb
sudo systemctl start mariadb

Nếu cò trục trặc, quay trở lại cách thiết lập cũ

sudo systemctl stop mariadb
sudo rm -af /var/lib/mysql
sudo mv /var/lib/mysql.bak /var/lib/mysql
sudo sed -i "s|datadir.*$|datadir=/var/lib/mysql|" /etc/mysql/mariadb.conf.d/50-server.cnf
sudo sed -i 's|.*\(alias .*\)|# \1|' /etc/apparmor.d/tunables/alias
sudo systemctl restart apparmor
sudo systemctl start mariadb

Comments Off on Dời thư mục data của MariaDb/MySQL

Filed under Software

Comments are closed.