Thứ hai, 19/12/2016 | 00:00 GMT+7

Cách thay đổi thư mục dữ liệu MariaDB thành vị trí mới trên CentOS 7

Database phát triển theo thời gian, đôi khi tăng thêm dung lượng trên hệ thống file . Bạn cũng có thể xảy ra tranh chấp I / O khi chúng nằm trên cùng một phân vùng với phần còn lại của hệ điều hành. RAID, lưu trữ khối mạng và các thiết bị khác có thể cung cấp khả năng dự phòng và các tính năng mong muốn khác. Cho dù bạn đang thêm dung lượng, đánh giá các cách để tối ưu hóa hiệu suất hay tìm cách tận dụng các tính năng lưu trữ khác, hướng dẫn này sẽ hướng dẫn bạn cách di chuyển folder dữ liệu của MariaDB.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

Trong ví dụ này, ta đang di chuyển dữ liệu sang block storage device được gắn tại /mnt/volume-nyc1-01 . Bạn có thể tìm hiểu cách cài đặt một trong hướng dẫnCách sử dụng Bộ nhớ khối trên DigitalOcean .

Dù bạn sử dụng bộ nhớ cơ bản nào, hướng dẫn này có thể giúp bạn di chuyển folder dữ liệu đến một vị trí mới.

Bước 1 - Di chuyển Thư mục Dữ liệu MariaDB

Để chuẩn bị cho việc di chuyển folder dữ liệu của MariaDB, hãy xác minh vị trí hiện tại bằng cách bắt đầu một phiên tương tác bằng thông tin đăng nhập quản trị.

  • mysql -u root -p

Khi được yêu cầu , hãy cung cấp password root MariaDB. Sau đó, từ dấu nhắc mysql , hãy chọn folder dữ liệu:

  • select @@datadir;
Output
+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set (0.00 sec)

Đầu ra này xác nhận MariaDB được cấu hình để sử dụng folder dữ liệu mặc định, /var/lib/mysql/, vì vậy đó là folder ta cần di chuyển. Khi bạn đã xác nhận điều này, hãy nhập exit và nhấn “ENTER” để rời khỏi màn hình:

  • exit

Để đảm bảo tính toàn vẹn của dữ liệu, ta sẽ tắt MariaDB trước khi thực sự thay đổi folder dữ liệu:

  • sudo systemctl stop mariadb

systemctl không hiển thị kết quả của tất cả các lệnh quản lý dịch vụ, vì vậy nếu bạn muốn chắc chắn rằng mình đã thành công, hãy sử dụng lệnh sau:

  • sudo systemctl status mariadb

Bạn có thể chắc chắn rằng nó đã tắt nếu dòng cuối cùng của kết quả cho bạn biết server đã dừng:

Output
. . . Dec 16 18:29:26 mysql systemd[1]: Stopped MariaDB database server.

Bây giờ server đã tắt, ta sẽ sao chép folder database hiện có sang vị trí mới bằng rsync . Sử dụng cờ -a bảo toàn các quyền và các thuộc tính folder khác, trong khi -v cung cấp kết quả dài dòng để bạn có thể theo dõi tiến trình.

Lưu ý: Hãy chắc chắn rằng không có dấu gạch chéo trên folder , có thể được thêm vào nếu bạn sử dụng tính năng hoàn thành tab. Khi có dấu gạch chéo, rsync sẽ kết xuất nội dung của folder vào điểm mount thay vì chuyển nó vào folder chứa mysql :

  • sudo rsync -av /var/lib/mysql /mnt/volume-nyc1-01

Khi rsync hoàn tất, hãy đổi tên folder hiện tại bằng phần mở rộng .bak và giữ nó cho đến khi ta xác nhận việc di chuyển thành công. Bằng cách đặt lại tên cho nó, ta sẽ tránh nhầm lẫn có thể phát sinh từ các file ở cả vị trí mới và cũ:

  • sudo mv /var/lib/mysql /var/lib/mysql.bak

Bây giờ ta đã sẵn sàng chuyển sự chú ý của bạn đến cấu hình.

Bước 2 - Trỏ đến Vị trí Dữ liệu Mới

MySQL có một số cách để overrides các giá trị cấu hình. Theo mặc định, datadir được đặt thành /var/lib/mysql trong file /etc/my.cnf . Chỉnh sửa file này để phản ánh folder dữ liệu mới:

  • sudo vi /etc/my.cnf

Tìm dòng bắt đầu bằng datadir= và thay đổi đường dẫn theo sau để phản ánh vị trí mới. Ngoài ra, vì socket trước đây đã được đặt trong folder dữ liệu, nên ta cần cập nhật nó vào vị trí mới:

/etc/my.cnf
[mysqld] . . . datadir=/mnt/volume-nyc1-01/mysql socket=/mnt/volume-nyc1-01/mysql/mysql.sock . . . 

Sau khi cập nhật các dòng hiện có, ta cần thêm cấu hình cho client mysql . Chèn các cài đặt sau vào cuối file để không chia nhỏ các lệnh trong khối [mysqld] và phía trên dòng include :

/etc/my.cnf
[client] port=3306 socket=/mnt/volume-nyc1-01/mysql/mysql.sock  !includedir /etc/my.cnf.d 

Khi bạn hoàn tất, nhấn ESCAPE , sau đó nhập :wq! để lưu và thoát khỏi file .

Bước 3 - Khởi động lại MariaDB

Bây giờ ta đã cập nhật cấu hình để sử dụng vị trí mới, ta đã sẵn sàng bắt đầu MariaDB và xác minh công việc của bạn .

  • sudo systemctl start mariadb
  • sudo systemctl status mariadb

Để đảm bảo folder dữ liệu mới đang thực sự được sử dụng, hãy khởi động màn hình.

  • mysql -u root -p

Xem lại giá trị cho folder dữ liệu:

  • select @@datadir;
Output
+----------------------------+ | @@datadir | +----------------------------+ | /mnt/volume-nyc1-01/mysql/ | +----------------------------+ 1 row in set (0.01 sec)

Nhập exit để rời khỏi màn hình.

Đến đây bạn đã khởi động lại MariaDB và xác nhận nó đang sử dụng vị trí mới, hãy tận dụng cơ hội đảm bảo rằng database của bạn hoạt động đầy đủ. Khi bạn đã xác minh tính toàn vẹn của mọi dữ liệu hiện có, bạn có thể xóa folder dữ liệu backup bằng sudo rm -Rf /var/lib/mysql.bak .

Kết luận

Trong hướng dẫn này, ta đã chuyển folder dữ liệu của MariaDB đến một vị trí mới. Mặc dù ta đang sử dụng thiết bị Lưu trữ khối, các hướng dẫn ở đây sẽ phù hợp để xác định lại vị trí của folder dữ liệu dù công nghệ cơ bản là gì.

Vì MariaDB được thiết kế để thay thế cho MySQL, bạn có thể tìm hiểu thêm về cách quản lý folder dữ liệu từ các phần này trong tài liệu MySQL chính thức:


Tags:

Các tin liên quan

Cách cài đặt và cấu hình Ansible trên CentOS 7
2016-12-19
Cách cài đặt MariaDB trên CentOS 7
2016-12-01
Cách thu thập số liệu cơ sở hạ tầng với Packetbeat và ELK trên CentOS 7
2016-11-28
Cách chia sẻ tệp bằng FileRun trên CentOS 7
2016-11-21
Cách cài đặt và cấu hình Grafana để vẽ đồ thị đẹp từ Zabbix trên CentOS 7
2016-11-13
Cách cài đặt và cấu hình ownCloud trên CentOS 7
2016-10-31
Cách triển khai bộ đệm trình duyệt với module tiêu đề của Nginx trên CentOS 7
2016-10-31
Cách sử dụng module bản đồ của Nginx trên CentOS 7
2016-10-31
Cách cài đặt Go 1.7 trên CentOS 7
2016-10-31
Cách cài đặt và cấu hình Sphinx trên CentOS 7
2016-09-20