Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thay đổi thư mục dữ liệu MySQL / MariaDB mặc định trong Linux

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][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!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra kích thước của cơ sở dữ liệu trong MySQL

  2. Hướng dẫn thiết kế cơ sở dữ liệu cho hệ thống mạng xã hội trong MySQL

  3. Lỗi khi gửi gói QUERY

  4. Cách tôi lưu và truy xuất hình ảnh trên máy chủ của mình trong ứng dụng web java

  5. MySQL Workbench là gì?