Thay đổi thư mục dữ liệu mysql

Xác định vị trí của các vị trí. tệp pid chứa ID tiến trình của máy chủ. Đường dẫn chính và tên của các tệp này phụ thuộc vào cấu hình riêng của bạn

Các hạn chế như /var/lib/mysql/, /var/run/mysqld/, và /usr/local/mysql/data/

Trước tiên, chúng ta nên kill tiến trình mysqld [lưu ý không sử dụng kill -9]

  1. SELECT @@datadir;
0

Tạo ra một tệp văn bản chứa các lệnh sau đây và lưu lại VD. /home/me/mysql-init. Vì lý do bảo mật nên chúng ta không nên lưu tệp này tại đường dẫn mà những người dùng khác có thể đọc được nhưng chắc chắn rằng đầy đủ quyền cho 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 [dữ liệu] mặc định của MySQL / MariaDB, chuyển sang 1 tập được gắn với 1 ổ đĩa khác hoặc lưu trữ trên 1 thư mục được gắn với . In this direction vinasupport. com sẽ giúp các bạn thay đổi đường dẫn thư mục dữ liệu của MySQL / MariaDB

Bước 1. Kiểm tra đường dẫn thư mục dữ liệu hiện tại của MySQL / MariaDB

Mặc dù đường dẫn thư mục dữ liệu được xác định nằm ở /var/lib/mysql trên Máy chủ Linux, để đảm bảo rằng chúng tôi sử dụng lệnh sau để xác nhận

Cơ sở dữ liệu phát triển theo thời gian, đôi khi vượt qua không gian trên hệ thống tệp. Bạn có thể gặp phải sự tranh chấp đầu vào/đầu ra [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 cũng. Mảng dự phòng của các ổ đĩa độc lập [RAID], lưu trữ khối mạng và các thiết bị khác, có thể cung cấp dự phòng và các tính năng mong muốn khác. Cho dù bạn có thêm không gian, đánh giá các cách để tối ưu hóa hiệu suất hoặc muốn 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 chuyển thư mục dữ liệu MySQL

Nội dung chính Hiển thị

  • Giới thiệu
  • Điều kiện tiên quyết
  • Bước 1 - Di chuyển thư mục dữ liệu MySQL
  • Bước 2 - Chỉ vào vị trí dữ liệu mới
  • Bước 3 - Định cấu hình các quy tắc kiểm soát truy cập apparmor
  • Bước 4 - Khởi động lại MySQL
  • Kết luận
  • Làm cách nào để chuyển thư mục dữ liệu MySQL sang một vị trí mới trong Ubuntu 20?
  • Tôi có thể sao chép thư mục dữ liệu MySQL sang máy chủ khác không?
  • Đường dẫn MySQL trên Ubuntu ở đâu?
  • Dữ liệu MySQL được lưu trữ trong Linux ở đâu?

Điều kiện tiên quyết

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

  • Máy chủ Ubuntu 20. 04 với người dùng không root có đặc quyền

    Output

    +-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
    2 và tường lửa được bật. Bạn có thể tìm hiểu thêm về cách thiết lập người dùng với các đặc quyền này trong thiết lập máy chủ ban đầu của chúng tôi với hướng dẫn Ubuntu 20. 04. người dùng root với ______02 đặc quyền và bật tường lửa. Bạn có thể tìm hiểu thêm về cách thiết lập người dùng với các đặc quyền này trong Thiết lập máy chủ ban đầu với Ubuntu 20 của chúng tôi. 04 hướng dẫn
  • Một máy chủ MySQL. Nếu bạn đã cài đặt MySQL, hãy xem hướng dẫn của chúng tôi về cách cài đặt MySQL trên Ubuntu 20. 04

Trong hướng dẫn này, chúng tôi đã chuyển dữ liệu sang một khối lưu trữ thiết bị lưu trữ được gắn vào

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
3. Bạn có thể tìm hiểu cách thiết lập một trong tài liệu sau khi về khối lượng lưu trữ khối trên DigitalOcean

Bất kể lưu trữ cơ bản nào bạn sử dụng, hướng dẫn này có thể giúp bạn chuyển thư mục 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ị chuyển thư mục dữ liệu MySQL, hãy xác minh vị trí hiện tại bằng cách bắt đầu phiên bản MySQL tương tác bằng thông tin quản trị. Run command after to open the MySQL server

  1. sudo mysql

Lưu ý. Nếu bạn đã định cấu hình người dùng MySQL gốc của mình để xác thực bằng mật khẩu, bạn có thể kết nối với MySQL vì người dùng này có lệnh sau. Nếu bạn đã định cấu hình người dùng MySQL gốc của mình để xác thực bằng mật khẩu, bạn có thể kết nối với MySQL với tư cách người dùng này bằng lệnh sau

  1. mysql -u root -p

Khi được nhắc nhở, hãy cung cấp mật khẩu người dùng MySQL. Sau đó, từ nhắc MySQL, chạy câu lệnh

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
4 sau. Điều này sẽ trả về thư mục dữ liệu hoạt động của phiên bản MySQL này, luôn được ghi lại trong biến MySQLTHER

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
5.
  1. SELECT @@datadir;

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]

Đầu ra này xác nhận rằng MySQL đã được cấu hình để sử dụng thư mục dữ liệu mặc định,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
6, do that, your directory to move. Khi bạn đã xác nhận điều này, hãy viết_______007 để rời khỏi màn hình và quay lại lệnh của bạn.

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
1

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
2

Để đảm bảo tính toàn vẹn của dữ liệu, hãy tắt MySQL trước khi thực hiện các thay đổi đối với thư mục dữ liệu

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
3

Lưu ý rằng

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
8 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 kiểm tra xem bạn có thành công hay không, hãy sử dụng lệnh sau.

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
5

You can accept it has stopped working if line

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
9 in the head nêu rõ, it

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
10 as being tô sáng trong ví dụ sau.

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
8

Bây giờ khi máy chủ tắt, bạn có thể sao chép thư mục cơ sở dữ liệu hiện có,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
11, to the new position,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
3, with

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
13. Sử dụng cờ

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
14 để bảo đảm sự tồn tại của các quyền và các thư mục thuộc tính khác, trong khi

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
15 cung cấp đầu ra dòng dài để bạn có thể thực hiện theo 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 thư mục, có thể được thêm vào nếu bạn sử dụng hoàn thành tab. Khi có một đường chéo kéo dài,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
43 sẽ điền nội dung của thư mục vào điểm gắn kết thay vì chuyển nó vào thư mục

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
17 chứa. Đảm bảo không có dấu gạch chéo ở cuối thư mục, dấu gạch chéo này 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 ở cuối,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
13 sẽ đổ nội dung của thư mục vào điểm gắn kết thay vì chuyển nó vào thư mục chứa

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
17.

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
8

Khi ra lệnh

Hoàn tất _______ 013, đổi tên thư mục hiện tại với tiện ích mở rộng ______019 và giữ cho đến khi bạn xác nhận việc chuyển đã thành công. Bằng cách đổi tên nó, bạn sẽ tránh được sự nhầm lẫn có thể phát sinh từ các tệp ở cả vị trí mới và địa điểm cũ.
  1. mysql -u root -p
0

Bây giờ bạn đã sẵn sàng để tiến hành các bước tiếp theo và bắt đầu cấu hình

Bước 2 - Chỉ vào vị trí dữ liệu mới

MySQL has a number of way to write over the configuration value. Theo default,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
5 was set to

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
11 in file

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
22. Chỉnh sửa tệp này trong trình soạn thảo văn bản tùy thích của bạn để phản ánh thư mục dữ liệu mới. Ở đây chúng tôi sẽ sử dụng

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
23.
  1. mysql -u root -p
1

Find line started with

  1. sudo mysql
74. Khéo léo dòng bằng cách xóa dấu thăng [

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
25] và thay đổi đường dẫn để phản chiếu vị trí mới. Trong trường hợp này, nội dung tệp được cập nhật sẽ như sau

/etc/mysql/mysql. conf. d/mysqld. cnf

  1. mysql -u root -p
2

Khi bạn đã thực hiện bản cập nhật này, hãy lưu và thoát tệp. Nếu bạn sử dụng

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
23, bạn có thể làm điều này bằng cách nhấn

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
27, thì

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
28 và

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
29. Bây giờ, nó gần như là thời gian để đưa MySQL lên một lần nữa, nhưng trước đó, có một điều nữa để cấu hình thành công

Bước 3 - Định cấu hình các quy tắc kiểm soát truy cập apparmor

Trong bước này, bạn cần nói với Apparmor để cho phép MySQL ghi vào thư mục mới bằng cách tạo bí danh giữa thư mục mặc định và vị trí mới. Apparmor là một mô-đun bảo mật trong nhân Linux cho phép các thành viên quản trị hệ thống hạn chế các khả năng của chương trình thông qua hồ sơ chương trình, thay vì chính người dùng. Bắt đầu bằng cách mở và chỉnh sửa tệp đã chỉnh sửa

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
30 của Apparmor.
  1. mysql -u root -p
3

Ở dưới cùng của tệp, giải phóng dòng sau và thêm quy tắc bí danh

/etc/apparmor. d/tunables/bí danh

  1. mysql -u root -p
4

Khi bạn hoàn thành, hãy lưu và thoát tệp

Đối với các thay đổi có hiệu lực, hãy khởi động lại APPARMOR

  1. mysql -u root -p
5

Lưu ý. Nếu bạn bỏ qua bước cấu hình apparmor, bạn sẽ nhận được thông báo lỗi sau. Nếu bỏ qua bước cấu hình AppArmor, bạn sẽ nhận được thông báo lỗi sau

  1. mysql -u root -p
6

Vì thông báo này không tạo ra kết nối rõ ràng giữa apparmor và thư mục dữ liệu, lỗi này có thể làm mất một khoảng thời gian để tìm ra

Khi bạn đã cấu hình đúng cách, bạn có thể chuyển sang bước tiếp theo

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

Now now, time to start MySQL. Tuy nhiên, nếu bạn làm, bạn sẽ gặp phải một lỗi khác. Thay vì sự cố Apparmor, lỗi này là do

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
31, một tập lệnh hỗ trợ quản lý MySQL thông qua

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
32. Bạn có thể kiểm tra tập lệnh này bằng lệnh sau

  1. mysql -u root -p
7

Lệnh này kiểm tra sự tồn tại của một thư mục,

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
33 hoặc biểu tượng liên kết, ______034, phù hợp với đường dẫn thư mục dữ liệu mặc định. Nếu nó không tìm thấy một trong hai điều này, tập lệnh sẽ kích hoạt lỗi và ngăn chặn MySQL bắt đầu

/usr/share/mysql/mysql-systemd-start

  1. mysql -u root -p
8

Sau khi bạn kiểm tra tệp này, hãy đóng nó mà không thực hiện bất kỳ thay đổi nào

Vì bạn cần một thư mục phù hợp hoặc biểu tượng liên kết để khởi động máy chủ, nên bạn phải tạo cấu trúc thư mục tối thiểu để vượt qua kiểm tra môi trường tập lệnh

  1. mysql -u root -p
9

Bây giờ bạn đã sẵn sàng để bắt đầu MySQL

  1. SELECT @@datadir;
0

Xác nhận MySQL đang chạy bằng cách kiểm tra trạng thái

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
5
  1. SELECT @@datadir;
2

Để đảm bảo rằng thư mục dữ liệu mới thực sự được sử dụng, hãy bắt đầu Màn hình MySQL

  1. SELECT @@datadir;
3

Bây giờ truy vấn giá trị của thư mục dữ liệu một lần nữa

  1. SELECT @@datadir;
  1. SELECT @@datadir;
5

Sau khi bạn khởi động lại MySQL và xác nhận rằng nó sử dụng vị trí mới, hãy tận dụng cơ hội để đảm bảo rằng cơ sở dữ liệu của bạn có đầy đủ chức năng. Khi bạn đã hoàn tất, hãy thoát khỏi cơ sở dữ liệu như sau và quay lại dấu nhắc lệnh

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
1

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
2

Bây giờ bạn đã xác minh tính toàn vẹn của bất kỳ dữ liệu hiện có nào, bạn có thể xóa thư mục dữ liệu đã sao lưu

  1. SELECT @@datadir;
8

Sau đó, khởi động lại MySQL lần cuối

  1. SELECT @@datadir;
9

Cuối cùng, xác nhận hoạt động của nó như mong đợi bằng cách kiểm tra trạng thái

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
5

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
1

If line

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
9 tuyên bố

Output

+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]
36 điều này khẳng định rằng MySQL đang hoạt động

Kết luận

Trong hướng dẫn này, bạn đã học cách di chuyển thư mục dữ liệu MySQL, sang một vị trí mới và cập nhật danh sách kiểm soát truy cập apparmor Ubuntu, để phù hợp với điều chỉnh. Mặc dù chúng tôi đã sử dụng một khối lưu trữ thiết bị, các hướng dẫn ở đây phải phù hợp để xác định lại vị trí của thư mục dữ liệu bất kể công nghệ cơ bản

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

  • MySQL data directory
  • Thiết lập nhiều thư mục dữ liệu

Làm cách nào để chuyển thư mục dữ liệu MySQL sang một vị trí mới trong Ubuntu 20?

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

Bước 1 - Di chuyển thư mục dữ liệu MySQL.

Bước 2 - Chỉ vào vị trí dữ liệu mới.

Bước 3 - Định cấu hình các quy tắc kiểm soát truy cập apparmor.

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

Tôi có thể sao chép thư mục dữ liệu MySQL sang máy chủ khác không?

Có hai lựa chọn rộng rãi. Chuyển/var/lib/mysql dir vào máy chủ mới như hiện tại hoặc thực hiện quy trình xuất và nhập. Sao chép toàn bộ thư mục MySQL sẽ có nghĩa là ít dữ liệu được truyền và sao chép chính xác cơ sở dữ liệu từ máy này sang máy khác. Chuyển thư mục /var/lib/mysql sang máy chủ mới hoặc thực hiện quy trình xuất và nhập . Sao chép toàn bộ thư mục mysql sẽ có nghĩa là ít dữ liệu được truyền hơn và sao chép chính xác cơ sở dữ liệu từ máy này sang máy khác.

Đường dẫn MySQL trên Ubuntu ở đâu?

Định cấu hình máy chủ MySQL trên hệ điều hành Ubuntu. .

Tìm các tập tin cấu hình. Theo mặc định, bạn có thể tìm thấy các tệp cấu hình MySQL® trong. /etc/mysql

Chủ Đề