Hướng dẫn how to change mysql database path in linux - cách thay đổi đường dẫn cơ sở dữ liệu mysql trong linux
Tôi có thể thay đổi thành công thư mục dữ liệu của MySQL hoặc MariaDB và giải quyết tất cả các vấn đề liên quan trên Fedora 30. Tôi nghĩ các bước sau đây sẽ hoạt động trên các phân phối khác.MySQL or MariaDB, and resolve all related issues on Fedora 30. I think the following steps will work on other distributions. Show
Lưu ý: Người dùng các bản phân phối 7 như 8 sẽ tìm kiếm cách tắt và chỉnh sửa 9 và sau đó làm theo các bước sau.Vô hiệu hóa SelinuxTrước hết, hãy để tôi đề cập rằng các bản phân phối Linux (RHEL) dựa trên Redhat như Fedora, Centos, v.v. Sử dụng SELinux để thực thi các chính sách kiểm soát truy cập bắt buộc. Vì vậy, tốt hơn là 0 nó trong các bước sau và sau đó kích hoạt nó với một số điều chỉnh.RedHat-based Linux
Distributions (RHELs) like Fedora, CentOS, etc. use SELinux that enforces mandatory access control policies. So it's better to 0 it during the following steps and later enable it with some tweaks.Mở tệp cấu hình Selinux
Xác định vị trí dòng chứa 1 và thay đổi giá trị của nó thành 2, lưu tệp và khởi động lại hệ thống của bạn.save the file and reboot your system.Thay đổi dữ liệu của MySQLDừng các dịch vụ MySQL
Tạo một thư mục mới cho thư mục dữ liệu của MySQL. Do một số lý do nằm ngoài phạm vi của giải pháp này, rất khuyến khích không tạo thư mục dữ liệu trong thư mục 3, nhưng có lẽ một số bạn thích tôi thích nó (nó tốn nhiều bước hơn).
Đặt quyền sở hữu và quyền của thư mục mới thành thư mục dữ liệu của MySQL mặc định (________ 44):ownership and permissions of the new directory to the default MySQL's data directory( 4):
Sao chép tất cả các tệp từ thư mục mặc định vào tệp mới
Chỉnh sửa tệp 5, Thêm dòng sau trong phần 6:
Bây giờ bạn có thể bắt đầu dịch vụ MySQL của mình thông qua lệnh sau
Nhưng nếu thư mục dữ liệu được tạo theo 3, MySQL won't start and you would see the following errors and warnings after 8:
Giải quyết các vấn đề cp -rp /var/lib/mysql/* /home/eloy/applications/mysql-datadir/ 3Đảm bảo rằng tất cả các thư mục mẹ của 0 mới trở lên đều có quyền 1 (thực thi) cho tất cả (người dùng, nhóm và khác). Tôi không thích sử dụng tập lệnh đệ quy vì vậy:execute) permissions for all (user, group, and other). I prefer to not use a recursive script so:
Vì nó được đề cập, việc tạo Datadir trong thư mục 3 là khó khăn vì theo mặc định, MySQL không cho phép nó. Tạo một tệp dưới /etc/systemd/system/mariadb.service.d và đặt các dòng sau trong:
Sao chép các dòng sau vào tệp 3 mới và lưu nó 0Áp dụng các thay đổi bằng cách chạy lệnh sau 1Bây giờ bạn có thể chạy dịch vụ MySQL:
Cho phép SelinuxMột lần nữa chỉnh sửa tệp 4 và thay đổi dòng 2 thành 1. Lưu tệp và khởi động lại hệ thống của bạn.Để truy vấn trạng thái hiện tại của SELinux, sử dụng các lệnh sau, nó nên in 7 dưới dạng đầu ra. 3 8 sử dụng 9 và nếu nó không được đặt chính xác, quy trình 0 sẽ bị hủy bỏ, vì vậy bạn cần cập nhật nó: 4Bây giờ bạn có thể chạy MySQL. Chúc mừng ;-) Giới thiệuCơ sở dữ liệu phát triển theo thời gian, đôi khi vượt xa không gian trên hệ thống tệp. Bạn cũng có thể gặp phải sự 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 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 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 thông qua việc di chuyển thư mục dữ liệu MySQL. Điều kiện tiên quyếtĐể hoàn thành hướng dẫn này, bạn sẽ cần:
Trong ví dụ này, chúng tôi di chuyển dữ liệu sang thiết bị lưu trữ khối được gắn ở 2. Bạn có thể tìm hiểu cách thiết lập một trong cách sử dụng lưu trữ khối trên Hướng dẫ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ị để di 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 MySQL tương tác bằng thông tin quản trị. 5Khi được nhắc, hãy cung cấp mật khẩu gốc MySQL. Sau đó, từ lời nhắc MySQL, chọn thư mục dữ liệu: 6 7Đầ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, 3 để thư mục mà chúng ta cần di chuyển. Khi bạn đã xác nhận điều này, hãy nhập 4 để rời khỏi màn hình.Để đảm bảo tính toàn vẹn của dữ liệu, chúng tôi sẽ tắt MySQL trước khi chúng tôi thực sự thay đổi thư mục dữ liệu: 8 5 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 bạn đã thành công, hãy sử dụng lệnh sau: 9Bạn có thể chắc chắn rằng nó đã tắt nếu dòng cuối cùng của đầu ra cho bạn biết máy chủ bị dừng: 0Bây giờ máy chủ đã tắt, chúng tôi sẽ sao chép thư mục cơ sở dữ liệu hiện có vào vị trí mới với 6. Sử dụng cờ 7 bảo tồn các quyền và các thuộc tính thư mục khác, trong khi ____68 cung cấp đầu ra dài dòng để bạn có thể làm 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 dấu gạch chéo kéo dài, 6 will dump the contents of the directory into the mount point instead of transferring it into a containing 0 directory: 1Khi 6 hoàn tất, đổi tên thư mục hiện tại với tiện ích mở rộng .bak và giữ nó cho đến khi chúng tôi xác nhận việc di chuyển đã thành công. Bằng cách đặt tên lại, chúng tôi sẽ tránh 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ũ: 2Bây giờ chúng tôi đã sẵn sàng để chuyển sự chú ý của chúng tôi sang cấu hình. Bước 2 - Chỉ vào vị trí dữ liệu mớiMySQL có một số cách để ghi đè giá trị cấu hình. Theo mặc định, 0 được đặt thành 4 trong tệp 4. Chỉnh sửa tệp này để phản ánh thư mục dữ liệu mới: 3Tìm dòng bắt đầu bằng 5 và thay đổi đường dẫn theo sau để phản ánh vị trí mới.Trong trường hợp của chúng tôi, tệp được cập nhật trông giống như đầu ra bên dưới: /etc/mysql/mysql.conf.d/mysqld.cnf 4Đây có vẻ như là thời điểm thích hợp để đưa MySQL lên một lần nữa, nhưng có một điều nữa để cấu hình trước khi chúng ta có thể làm điều đó thành công. Bước 3 - Định cấu hình các quy tắc kiểm soát truy cập apparmorChúng tôi cần phải nói với Apparmor để cho 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. Để thực hiện việc này, chỉnh sửa tệp 6 ab____76: 5Ở dưới cùng của tệp, thêm quy tắc bí danh sau: 6Đối với các thay đổi có hiệu lực, hãy khởi động lại APPARMOR: 7Lưu ý: Nếu bạn bỏ qua bước cấu hình apparmor, bạn sẽ chạy vào thông báo lỗi sau: If you skipped the AppArmor configuration step, you would run into the following error message: 8Đầu ra từ cả 5 và 8 kết luận với: 9Vì các tin nhắn don lồng tạo ra một kết nối rõ ràng giữa apparmor và thư mục dữ liệu, lỗi này có thể mất một thời gian để tìm ra. Bước 4 - Khởi động lại MySQLBước tiếp theo là bắt đầu MySQL, nhưng nếu bạn làm vậy, bạn sẽ gặp phải một lỗi khác. Lần này, thay vì sự cố ứng dụng, lỗi xảy ra do tập lệnh 9 kiểm tra sự tồn tại của thư mục, 0 hoặc liên kết tượng trưng, 1, phù hợp với hai đường dẫn mặc định. Nó thất bại nếu họ không tìm thấy:/usr/share/mysql/mysql-systemd-start 0Vì chúng tôi cần những thứ này để khởi động máy chủ, chúng tôi sẽ 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. 1Bây giờ chúng tôi đã sẵn sàng để bắt đầu MySQL. 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. 5Nhìn vào giá trị cho thư mục dữ liệu một lần nữa: 4Bây giờ, 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ó chức năng đầy đủ. Khi 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: 5Khởi động lại MySQL một lần cuối cùng để chắc chắn rằng nó hoạt động như mong đợi: 6Sự kết luậnTrong hướng dẫn này, chúng tôi đã chuyển thư mục dữ liệu MySQL, sang một vị trí mới và cập nhật các ACL của Ubuntu, ACL để điều chỉnh. Mặc dù chúng tôi đã sử dụng một thiết bị lưu trữ khối, 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 về việc quản lý các thư mục dữ liệu MySQL, hãy xem các phần này trong tài liệu chính thức của MySQL:
Làm thế nào để bạn di chuyển một thư mục dữ liệu MySQL sang một vị trí mới trên Linux?Dừng MySQL bằng "Sudo Service MySQL dừng". Thay đổi biến "datadir" thành đường dẫn mới trong "/etc/mysql/mariadb. .... Thực hiện sao lưu của/var/lib/mysql: "cp -r -p/var/lib/mysql/path_to_my_backup". Xóa dir này: "sudo rm -r/var/lib/mysql". Di chuyển dữ liệu đến DIR mới: "CP -R -P /PATH_TO_MY_BACKUP /PATH_NEW_DIR .. Đường dẫn MySQL trong Linux ở đâu?Cơ sở dữ liệu MySQL bên trong MySQL được lưu trữ trong thư mục/var/lib/mysql/mysql./var/lib/mysql/mysql directory.
Làm cách nào để thay đổi từ ổ C sang ổ D trong MySQL?Di chuyển các tệp dữ liệu MySQL sang một ổ đĩa khác.. Dừng dịch vụ MySQL..... Sửa đổi đường dẫn của vị trí mới của các tệp dữ liệu của bạn..... Di chuyển các tệp dữ liệu gốc (ban đầu được đặt theo mặc định trong C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ Data) sang đích mới (trong ví dụ "E: \ MySQL Data") .... Bắt đầu dịch vụ Franson NMEA .. Làm cách nào để di chuyển cơ sở dữ liệu MySQL?Dừng cơ sở dữ liệu (hoặc khóa nó). Chuyển đến thư mục nơi các tệp dữ liệu MySQL .. Chuyển qua thư mục (và nội dung của nó) sang thư mục dữ liệu MySQL mới của máy chủ .. Bắt đầu sao lưu cơ sở dữ liệu .. Trên máy chủ mới, hãy phát hành lệnh 'Tạo cơ sở dữ liệu'.'. Tái tạo quyền của người dùng và cấp quyền .. |