Sau khi cài đặt các thành phần của ngăn xếp LAMP trên máy chủ CentOS / RHEL 7, có một số điều bạn có thể muốn làm.
Một số trong số chúng liên quan đến việc tăng cường bảo mật của Apache và MySQL / MariaDB, trong khi những cái khác có thể áp dụng hoặc không theo thiết lập hoặc nhu cầu của chúng tôi.
Ví dụ:dựa trên việc sử dụng dự kiến của máy chủ cơ sở dữ liệu, chúng tôi có thể muốn thay đổi dữ liệu mặc định thư mục (/var/lib/mysql
) đến một vị trí khác. Đây là trường hợp khi một thư mục như vậy dự kiến sẽ phát triển do mức sử dụng cao.
Nếu không, hệ thống tệp trong đó /var
được lưu trữ có thể bị sập tại một thời điểm khiến toàn bộ hệ thống bị lỗi. Một tình huống khác khi thay đổi thư mục mặc định là khi chúng tôi có một mạng chia sẻ riêng mà chúng tôi muốn sử dụng để lưu trữ dữ liệu thực tế của mình.
Vì lý do này, trong bài viết này, chúng tôi sẽ giải thích cách thay đổi thư mục dữ liệu MySQL / MariaDB mặc định thành một đường dẫn khác trên máy chủ CentOS / RHEL 7 và các bản phân phối Ubuntu / Debian.
Mặc dù chúng tôi sẽ sử dụng MariaDB , các khái niệm được giải thích và các bước thực hiện trong bài viết này áp dụng cho cả MySQL và tới MariaDB trừ khi có ghi chú khác.
Thay đổi Thư mục dữ liệu MySQL / MariaDB mặc định
Lưu ý :Chúng tôi sẽ giả định rằng thư mục dữ liệu mới của chúng tôi là /mnt/mysql-data
. Điều quan trọng cần lưu ý là thư mục này phải được sở hữu bởi mysql:mysql
.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
Để thuận tiện cho bạn, chúng tôi đã chia quy trình thành 5 bước dễ thực hiện:
Bước 1:Xác định Thư mục Dữ liệu MySQL Hiện tại
Để bắt đầu, bạn nên xác định thư mục dữ liệu hiện tại bằng cách sử dụng lệnh sau. Đừng chỉ cho rằng nó vẫn là /var/lib/mysql
vì nó có thể đã được thay đổi trong quá khứ.
# mysql -u root -p -e "SELECT @@datadir;"
Sau khi bạn nhập mật khẩu MySQL, đầu ra sẽ tương tự như.
Bước 2:Sao chép Thư mục Dữ liệu MySQL sang Vị trí Mới
Để tránh hỏng dữ liệu, hãy dừng dịch vụ nếu dịch vụ hiện đang chạy trước khi tiếp tục. Sử dụng systemd các lệnh nổi tiếng để làm như vậy:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Nếu dịch vụ đã được đưa xuống, đầu ra của lệnh cuối cùng sẽ như sau:
Sau đó sao chép đệ quy nội dung của /var/lib/mysql
thành /mnt/mysql-data
giữ nguyên các quyền và dấu thời gian ban đầu:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Bước 3:Định cấu hình Thư mục Dữ liệu MySQL Mới
Chỉnh sửa tệp cấu hình (my.cnf
) để chỉ ra thư mục dữ liệu mới (/mnt/mysql-data
trong trường hợp này).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Tìm [mysqld]
và [client]
và thực hiện các thay đổi sau:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Lưu các thay đổi và sau đó tiến hành bước tiếp theo.
Bước 4:Đặt Ngữ cảnh bảo mật SELinux thành Thư mục dữ liệu
Bước này chỉ áp dụng cho RHEL / CentOS và các dẫn xuất của nó.
Thêm ngữ cảnh bảo mật SELinux vào /mnt/mysql-data
trước khi khởi động lại MariaDB.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
Tiếp theo, khởi động lại dịch vụ MySQL.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Bây giờ, sử dụng lệnh tương tự như trong Bước 1 để xác minh vị trí của thư mục dữ liệu mới:
# mysql -u root -p -e "SELECT @@datadir;"
Bước 5:Tạo cơ sở dữ liệu MySQL để xác nhận thư mục dữ liệu
Đăng nhập vào MariaDB, tạo cơ sở dữ liệu mới và sau đó kiểm tra /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Xin chúc mừng! Bạn đã thay đổi thành công thư mục dữ liệu cho MySQL hoặc MariaDB.
Tóm tắt
Trong bài đăng này, chúng tôi đã thảo luận về cách thay đổi thư mục dữ liệu trong máy chủ MySQL hoặc MariaDB chạy trên các bản phân phối CentOS / RHEL 7 và Ubuntu / Debian.
Bạn có bất kỳ câu hỏi hoặc nhận xét nào về bài viết này? Vui lòng cho chúng tôi biết bằng cách sử dụng biểu mẫu bên dưới - chúng tôi luôn vui mừng được nghe ý kiến từ bạn!