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]
- SELECT @@datadir;
0Tạ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
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ẫnOutput
+-----------------+ | @@datadir | +-----------------+ | /var/lib/mysql/ | +-----------------+ 1 row in set [0.00 sec]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 DigitalOceanBấ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
- 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
- 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 MySQLTHEROutput
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
5. - 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]
1Output
+-----------------+
| @@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]
3Lư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]
5You 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õ, itOutput
+-----------------+
| @@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]
8Bâ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, withOutput
+-----------------+
| @@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 khiOutput
+-----------------+
| @@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ìnhLư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ụcOutput
+-----------------+
| @@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ứaOutput
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
17. Output
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
8Khi 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ũ.- mysql -u root -p
0Bâ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 toOutput
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
11 in fileOutput
+-----------------+
| @@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ụngOutput
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
23. - mysql -u root -p
1Find line started with
- 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
- mysql -u root -p
2Khi 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ấnOutput
+-----------------+
| @@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ôngBướ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. - 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
- mysql -u root -p
4Khi 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
- mysql -u root -p
5Lư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
- mysql -u root -p
6Vì 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 quaOutput
+-----------------+
| @@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- mysql -u root -p
7Lệ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
- mysql -u root -p
8Sau 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
- mysql -u root -p
9Bây giờ bạn đã sẵn sàng để bắt đầu MySQL
- SELECT @@datadir;
0Xá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- 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
- SELECT @@datadir;
3Bây giờ truy vấn giá trị của thư mục dữ liệu một lần nữa
- SELECT @@datadir;
- SELECT @@datadir;
5Sau 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]
1Output
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
2Bâ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
- SELECT @@datadir;
8Sau đó, khởi động lại MySQL lần cuối
- SELECT @@datadir;
9Cuố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]
5Output
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set [0.00 sec]
1If 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 độngKế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