Hướng dẫn mysql data folder - thư mục dữ liệu mysql

Do tính chất của dự án, mình muốn thay đổi thư mục mặc định lưu trữ dữ liệu (data) mặc định của MySQL / MariaDB, chuyển sang 1 volume được mount với 1 ổ đĩa khác hoặc lưu trữ trên 1 thư mục được mount với 1 NFS Server chẳng hạn! Vậy hướng dẫn dưới đây vinasupport.com sẽ giúp các bạn thay đổi đường dẫn thư mục data của MySQL / MariaDB

Show

Bước 1: Kiểm tra dường dẫn thư mục data hiện tại của MySQL / MariaDB

Mặc định đường dẫn thư mục data nằm ở /var/lib/mysql trên Linux Server, để chắc chắn chúng ta sử dụng command sau để xác nhận

mysql -u root -p -e "SELECT @@datadir;"

Kết quả:

Hướng dẫn mysql data folder - thư mục dữ liệu mysql

Bước 2: Stop MySQL / MariaDB Service

Để chuyển thư mục data không bị ảnh hưởng đến serice đang chạy chúng ta dừng MySQL / MariaDB

sudo systemctl stop mysql.service

Kiểm tra lại bằng command sau:

sudo systemctl status mysql.service

Hướng dẫn mysql data folder - thư mục dữ liệu mysql

Bước 3: Copy dữ liệu từ thư mục data hiện tại tới thư mục mới

Tạo thư mục mới

sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql

copy dữ liệu tới thư mục mới

sudo rsync -avzh /var/lib/mysql/ /mnt/data/mysql

Bước 4: Sửa file my.conf để nhận đường dẫn mới

Đường dẫn của file my.conf trên MariaDB là: /etc/mysql/mariadb.conf.d/50-server.cnf/etc/mysql/mariadb.conf.d/50-server.cnf

Đường dẫn của file my.conf trên MySQL là: /etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/mysql.conf.d/mysqld.cnf

Thêm hoặc sửa:

[mysqld]
datadir=/mnt/data/mysql

Bước 5: Khởi động lại MySQL / MariaDB Service

sudo systemctl start mysql.service

Bước 6: Xác nhận lại thư mục data của MySQL / MariaDB

Thử lại với command line ở bước 1 chúng ta thấy đường dẫn đã được thay đổi.

Hướng dẫn mysql data folder - thư mục dữ liệu mysql

Nguồn: vinasupport.com

Cách thay đổi thư mục dữ liệu MySQL sang vị trí mới bằng cách sử dụng liên kết biểu tượng 2016-12-02 Cách cài đặt MySQL trên CentOS 7 2016-12-01 Cách cài đặt MySQL trên Ubuntu 16.04 2016-11-23 Cách kết nối với server MySQL từ xa bằng MySQL Workbench 2016-10-21 Cách cấu hình một cụm Galera với MySQL 5.6 trên Ubuntu 16.04 2016-09-02 Cách di chuyển thư mục dữ liệu MySQL đến vị trí mới trên Ubuntu 16.04 2016-07-21 Cách tạo một cụm MySQL nhiều node trên Ubuntu 16.04 2016-06-17 Cách cài đặt MySQL trên Ubuntu 14.04 2016-03-08 Cơ sở hạ tầng SaltStack: Tạo Salt States cho server database MySQL 2015-10-05 Cách sử dụng Mytop để theo dõi hiệu suất MySQL 2015-08-27

Thứ hai, 19/12/2016 | 00:00 GMT+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 bổ sung thêm dung lượng, đánh giá các cách để tối ưu hóa hiệu suất hoặc 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 lại folder dữ liệu của MySQL.

Yêu cầu

  • Để hoàn thành hướng dẫn này, bạn cần : . Bạn có thể tìm hiểu thêm về cách cài đặt user có các quyền này trong hướng dẫn Cài đặt server ban đầu với CentOS 7 của ta . Nếu bạn chưa cài đặt MySQL, hướng dẫn Cách cài đặt MySQL trên CentOS 7 có thể giúp bạn.

Trong ví dụ này, ta đang di chuyển dữ liệu sang block storage device được gắn tại

sudo systemctl status mysql.service
4 . 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 MySQL

Để chuẩn bị cho việc di chuyển folder dữ liệu của MySQL, hãy xác minh vị trí hiện tại bằng cách bắt đầu một phiên MySQL 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 MySQL. 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 MySQL được cấu hình để sử dụng folder dữ liệu mặc định,

sudo systemctl status mysql.service
5 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
sudo systemctl status mysql.service
6 và nhấn “ENTER” để rời khỏi màn hình:

sudo systemctl stop mysql.service
0

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

sudo systemctl stop mysql.service
1

sudo systemctl status mysql.service
7 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 stop mysql.service
2

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:

sudo systemctl stop mysql.service
3

Bây giờ server đã tắt, ta sẽ sao chép folder database hiện có sang vị trí mới bằng

sudo systemctl status mysql.service
8 . Sử dụng cờ
sudo systemctl status mysql.service
9 bảo toàn các quyền và các thuộc tính folder khác, trong khi
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
0 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,

sudo systemctl status mysql.service
8 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
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
2 :
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,
sudo systemctl status mysql.service
8 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
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
2 :

sudo systemctl stop mysql.service
4

Khi

sudo systemctl status mysql.service
8 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 systemctl stop mysql.service
5

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,

sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
4 được đặt thành
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
5 trong file
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
6 . Chỉnh sửa file này để phản ánh folder dữ liệu mới:

sudo systemctl stop mysql.service
6

Tìm dòng trong khối

sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
7 bắt đầu bằng
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
8 , được phân tách khỏi tiêu đề khối bằng một số chú thích. 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, ta cần cập nhật nó vào vị trí mới:

/etc/my.cnf

sudo systemctl stop mysql.service
7

Sau khi cập nhật các dòng hiện có, ta cần thêm cấu hình cho client

sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
2 . Chèn các cài đặt sau vào cuối file để nó không tách các lệnh trong khối
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
7 :

/etc/my.cnf

sudo systemctl stop mysql.service
8

Sau khi cập nhật các dòng hiện có, ta cần thêm cấu hình cho client

sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
2 . Chèn các cài đặt sau vào cuối file để nó không tách các lệnh trong khối
sudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
7 :

Khi bạn hoàn tất, nhấn sudo rsync -avzh /var/lib/mysql/ /mnt/data/mysql1 , sau đó nhập sudo rsync -avzh /var/lib/mysql/ /mnt/data/mysql2 để lưu và thoát khỏi file .

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

sudo systemctl stop mysql.service
9

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

  • mysql -u root -p

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

  • select @@datadir;
sudo systemctl status mysql.service
2

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

Đến đây bạn đã khởi động lại MySQL 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 rsync -avzh /var/lib/mysql/ /mnt/data/mysql3 .

Kết luận

Trong hướng dẫn này, ta đã chuyển folder dữ liệu của MySQL đến một vị trí mới và cập nhật SELinux để phù hợp với việc điều chỉnh. 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ì.

  • Để biết thêm về cách quản lý folder dữ liệu của MySQL, hãy xem các phần này trong tài liệu MySQL chính thức:
  • Thư mục dữ liệu MySQL

Cài đặt nhiều folder dữ liệu


Tags:

Các tin liên quan
2016-12-02
Cách cài đặt MySQL trên CentOS 7
2016-12-01
Cách cài đặt MySQL trên Ubuntu 16.04
2016-11-23
Cách kết nối với server MySQL từ xa bằng MySQL Workbench
2016-10-21
Cách cấu hình một cụm Galera với MySQL 5.6 trên Ubuntu 16.04
2016-09-02
Cách di chuyển thư mục dữ liệu MySQL đến vị trí mới trên Ubuntu 16.04
2016-07-21
Cách tạo một cụm MySQL nhiều node trên Ubuntu 16.04
2016-06-17
Cách cài đặt MySQL trên Ubuntu 14.04
2016-03-08
Cơ sở hạ tầng SaltStack: Tạo Salt States cho server database MySQL
2015-10-05
Cách sử dụng Mytop để theo dõi hiệu suất MySQL
2015-08-27