Làm cách nào để thiết lập nhiều phiên bản của mysql?
MySQL sử dụng kiến trúc client-server. Chương trình máy khách $ chmod --reference /var/lib/mysql /opt/second_server_data/ 0 giao tiếp với chương trình máy chủ $ chmod --reference /var/lib/mysql /opt/second_server_data/ 1. Chương trình máy chủ thường khởi động (dưới dạng dịch vụ có tên mysql) khi khởi động hệ thống Ubuntu (hoặc Windows) của chúng tôi và luôn chạy ở chế độ nền Show Để truy cập máy chủ bằng chương trình máy khách mysql, chúng ta có thể chạy lệnh này $ chmod --reference /var/lib/mysql /opt/second_server_data/ 2Điều này giả định rằng máy chủ mysqld đang chạy trên hệ thống của chúng tôi tại Máy chủ. máy chủ cục bộ và cổng. 3306, đó là mặc định Vậy làm thế nào để chúng ta thiết lập một máy chủ riêng biệt hoặc chạy nhiều phiên bản? . 🔎 Hướng dẫn sẽ đi vào chi tiết về cách chạy và sử dụng nhiều máy chủ MySQL
Một câu chuyện lạc hậu trước khi chúng ta bắt đầu. Tôi muốn triển khai sao chép cơ sở dữ liệu chủ tớ của MySQL và để kiểm tra thiết lập, tôi nghĩ tại sao không tạo một máy chủ khác trên cùng một máy. Dễ dàng phải không? . Nhưng vì lý do nào đó, máy chủ sẽ nhận cấu hình sai và việc gỡ lỗi trở nên khó khăn do dấu thời gian hỗn hợp trong tệp nhật ký. Tôi đã dành 1 ngày tiếp theo (khoảng ~14 giờ) để hiểu cách chạy một máy chủ MySQL khác bằng cách đọc từ tài liệu chính thức. Bài đăng này là một nỗ lực để làm cho điều đó trở nên dễ dàng với những người khác (và tránh cho họ phải trải qua địa ngục). TẠI SAO việc thiết lập một phiên bản MySQL khác lại khó khăn? Tái bút. Cấu hình hệ thống mà tôi đã sử dụng cho bài viết này là Ubuntu 16. 04 với MySQL 5. 7 và Mysql 8. 0. 21. Mặc dù các chi tiết cụ thể của các lệnh có thể thay đổi theo Hệ điều hành, quy trình vẫn sẽ giống nhau 1. Máy chủ MySQL nào cần ít nhất để chạy? Chỉ cần hai điều. Nơi lưu trữ dữ liệu (data dir) và phương tiện (ổ cắm (và cổng TCP)) để máy khách kết nối với máy chủ. Đó là nó 2. Tạo ra những thứ này2. 1. Thư mục dữ liệuMySQL lưu trữ tất cả dữ liệu của nó trong thư mục dữ liệu. Thư mục dữ liệu mặc định là $ chmod --reference /var/lib/mysql /opt/second_server_data/ 3. Nếu bạn tò mò muốn tìm hiểu xem thư mục trông như thế nào thì hãy chạy lệnh này trên máy của bạn$ chmod --reference /var/lib/mysql /opt/second_server_data/ 4-rw-r----- 1 mysql mysql 56 Dec 2 2017 auto.cnf Bạn sẽ thấy một loạt các tệp và thư mục, bao gồm cả các thư mục lưu trữ cơ sở dữ liệu bạn đã tạo. Trong kết quả ở trên, tôi đã đánh dấu cơ sở dữ liệu tôi đã tạo và cơ sở dữ liệu được tạo bởi MySQL khi khởi tạo Vậy làm thế nào để chúng ta “tạo” và “khởi tạo” một thư mục dữ liệu MỚI? 2. 1. 1. Tạo một thư mục rất dễ dàngChọn một vị trí bạn chọn và chỉ cần tạo một thư mục ở đó $ chmod --reference /var/lib/mysql /opt/second_server_data/ 52. 1. 2. Tiếp theo là khởi tạo thư mụcĐầu tiên thay đổi quyền trên thư mục đã tạo để MySQL có thể tạo tệp hoặc thư mục theo cách nó muốn. Chúng tôi sẽ sao chép quyền từ các thư mục dữ liệu hiện có. Ngoài ra, người ta có thể thay đổi người dùng và nhóm cho thư mục dữ liệu thành mysql $ chmod --reference /var/lib/mysql /opt/second_server_data/ Trên một số hệ thống như Ubuntu, quyền truy cập hệ thống tệp vào các chương trình (trong trường hợp của chúng tôi là mysqld, mysqld_safe,…) có thể bị hạn chế bởi các cơ chế khác, chẳng hạn như AppArmor. AppArmor là một mô-đun bảo mật nhân linux cho phép bạn hạn chế các khả năng của chương trình trên cơ sở từng chương trình. Chúng tôi cần thêm quy tắc vào tệp chính sách để ngăn hệ điều hành hạn chế MySQL truy cập thư mục dữ liệu mới tạo, tệp ổ cắm, v.v. $ chmod --reference /var/lib/mysql /opt/second_server_data/ 6Đặt nội dung ở bất cứ đâu trong dấu ngoặc nhọn mở và đóng /opt/second_server_data/ r, Tái bút. Nếu bạn thấy tệp, các quy tắc tương tự sẽ tồn tại cho máy chủ mysql mặc định Khởi động lại dịch vụ apparmor. $ chmod --reference /var/lib/mysql /opt/second_server_data/ 7Bây giờ mọi thứ đã được thiết lập, cuối cùng chúng ta khởi tạo thư mục đã tạo (ở bước 2. 1. 1. ) dưới dạng thư mục dữ liệu MySQL $ chmod --reference /var/lib/mysql /opt/second_server_data/ 8Sau khi hoàn thành, bạn có thể kiểm tra nội dung của thư mục $ chmod --reference /var/lib/mysql /opt/second_server_data/ 9$ chmod --reference /var/lib/mysql /opt/second_server_data/ 3GHI CHÚ. Khi nội dung thư mục dữ liệu được tạo, mysqld cũng sẽ tạo mật khẩu gốc mặc định, tự động chuyển sang nhật ký lỗi. Bạn có thể tìm thấy nó tại /opt/second_server_data/ r,0 hoặc tại /opt/second_server_data/ r,1 $ chmod --reference /var/lib/mysql /opt/second_server_data/ 6Tái bút. Một cách phức tạp hơn để tìm nơi lưu trữ nhật ký lỗi là tra cứu các biến hệ thống máy chủ. Những cửa hàng thông tin về cấu hình. Sau khi đăng nhập vào máy chủ mysql cơ sở của bạn, hãy nhập /opt/second_server_data/ r,2 $ chmod --reference /var/lib/mysql /opt/second_server_data/ 82. 2. Ổ cắm (và Cổng)Được cấp quyền chính xác, MySQL có thể tự tạo những quyền này. Dễ dàng đúng. ?. P 3. Cung cấp những thứ này cho chương trình máy chủ MySQLBây giờ chúng tôi đã tạo các tài nguyên cần thiết để chạy máy chủ MySQL, chúng tôi cần cung cấp các tài nguyên này cho nó dưới dạng cấu hình. Chương trình máy chủ MySQL mysqld hoặc hầu hết các chương trình khác đi kèm với MySQL có thể được định cấu hình bằng cách sử dụng tùy chọn dòng lệnh, tệp tùy chọn hoặc tệp cấu hình (. cnf) hoặc các biến hệ thống máy chủ Hãy xem hai phương thức được sử dụng thường xuyên, dòng lệnh và tệp tùy chọn 3. 1. Dòng lệnhHãy chạy máy chủ MySQL bằng các tùy chọn dòng lệnh bằng chương trình mysqld_safe $ chmod --reference /var/lib/mysql /opt/second_server_data/ 9mysqld_safe gọi nội bộ mysqld và cung cấp thêm sự an toàn hơn là chạy trực tiếp mysqld. Đó là cách được đề xuất để khởi động máy chủ MySQL. Một số tùy chọn được cung cấp trong lệnh trên rất đơn giản
GHI CHÚ. Để gỡ lỗi các tùy chọn mysqld_safe hoặc chương trình mysqld đang sử dụng, bạn có thể sử dụng /opt/second_server_data/ r,3 và xác minh Kiểm tra xem nó có hoạt động khôngSử dụng chương trình máy khách MySQL để kiểm tra. Chúng ta có thể bắt đầu kết nối qua socket hoặc TCP tương ứng /opt/second_server_data/ r,4 HOẶC /opt/second_server_data/ r,5 Và sau đó nhập mật khẩu nhận được ở bước trước Mật khẩu này được tạo tự động và cần được thay đổi trước khi bạn có thể thực hiện bất kỳ thao tác nào /opt/second_server_data/ r,6 Hãy tiếp tục và tạo cơ sở dữ liệu, bảng và thông tin vào đó để thử nghiệm Để dừng mysqld_safe, hãy sử dụng lệnh /opt/second_server_data/ r,7 3. 2. tập tin tùy chọnChúng tôi có thể làm tương tự như trên bằng cách sử dụng các tệp tùy chọn. Các tệp tùy chọn có thể tiết kiệm rất nhiều công sức viết các tùy chọn cấu hình, vì vậy đây là nơi tốt để cung cấp các tùy chọn chung. Các tệp tùy chọn được lưu trữ bên trong thư mục /opt/second_server_data/ r,8 có tên là /opt/second_server_data/ r,9 Khi bắt đầu tùy chọn cấu hình, có một tên nhóm được viết bên trong dấu ngoặc vuông. e. g. $ chmod --reference /var/lib/mysql /opt/second_server_data/ 30 , $ chmod --reference /var/lib/mysql /opt/second_server_data/ 31 , $ chmod --reference /var/lib/mysql /opt/second_server_data/ 32. Điều này có nghĩa là cấu hình sẽ chỉ áp dụng cho chương trình cụ thể đóChúng tôi sẽ tạo một tệp mới trong /opt/second_server_data/ r,8 có tên là $ chmod --reference /var/lib/mysql /opt/second_server_data/ 34 với bản sao các dòng sau$ chmod --reference /var/lib/mysql /opt/second_server_data/ 2Như bạn đã giả sử tên nhóm ở đây là $ chmod --reference /var/lib/mysql /opt/second_server_data/ 32 vì chúng tôi đang sử dụng chương trình mysqld_safe để chạy nó. Các cấu hình có tên nhóm khác được cung cấp trong cùng một tệp sẽ không được áp dụngĐể chạy máy chủ với tệp tùy chọn, chúng tôi sử dụng mysqld_safe với tùy chọn tệp mặc định tham chiếu tệp tùy chọn mà chúng tôi đã tạo $ chmod --reference /var/lib/mysql /opt/second_server_data/ 36Đó là tất cả về nó. Bây giờ bạn có một máy chủ (mặc định) chạy trên cổng 3306 và một máy chủ khác trên cổng 3315. Để tạo thêm máy chủ, bạn có thể lặp lại các bước trên với các thư mục dữ liệu, ổ cắm (và cổng) khác nhau và chạy chúng với mysqld_safe Còn một điều cuối cùng. Việc khởi động các máy chủ này theo cách thủ công sẽ trở nên khó khăn khi số lượng máy chủ tăng lên. Để khắc phục khó khăn này mysql cung cấp chương trình mysqld_multi mysqld_multi mysqld_multi, đúng như tên gọi, cho phép chạy và quản lý nhiều máy chủ MySQL Nó tìm kiếm các nhóm có tên là $ chmod --reference /var/lib/mysql /opt/second_server_data/ 37 trong tệp $ chmod --reference /var/lib/mysql /opt/second_server_data/ 38 theo mặc định, trong đó N là số nguyên dương. Bạn có thể sử dụng tùy chọn tệp mặc định để ghi đè lên tệp $ chmod --reference /var/lib/mysql /opt/second_server_data/ 38. Hãy tạo một tệp $ chmod --reference /var/lib/mysql /opt/second_server_data/ 60 trong /opt/second_server_data/ r,8 với nội dung sau. Bạn có thể tạo một máy chủ khác theo các bước tương tự ở trên $ chmod --reference /var/lib/mysql /opt/second_server_data/ 0Mặc dù việc khởi động máy chủ không phải là vấn đề nhưng để dừng chúng, bạn cần phải có quyền TẮT trên máy chủ. Để tạo một người dùng MySQL trên mỗi máy chủ với $ chmod --reference /var/lib/mysql /opt/second_server_data/ 62 và $ chmod --reference /var/lib/mysql /opt/second_server_data/ 63$ chmod --reference /var/lib/mysql /opt/second_server_data/ 64Và sau đó cấp quyền tắt máy $ chmod --reference /var/lib/mysql /opt/second_server_data/ 65Để khởi động tất cả các máy chủ cùng một lúc, hãy chạy lệnh bên dưới $ chmod --reference /var/lib/mysql /opt/second_server_data/ 5Có các thao tác khác mà bạn có thể thực hiện như dừng để dừng một hoặc tất cả các máy chủ, báo cáo để hiển thị trạng thái của máy chủ (đang chạy/không chạy), tải lại để tải lại tệp cấu hình và khởi động lại máy chủ với cấu hình mới Chúng tôi cũng có thể tự động hóa nhiều máy chủ để chạy khi khởi động bằng cách tạo một dịch vụ bằng systemd Cảm ơn đã đọc 👋Đây là bài đăng đầu tiên của tôi trên phương tiện (hoặc bất cứ nơi nào…) vì vậy cảm ơn rất nhiều vì đã đọc độc giả. Nếu bạn có bất kỳ đề xuất nào cho tôi, câu hỏi hoặc gặp phải bất kỳ vấn đề nào trong các bước trên, tôi sẵn sàng trả lời chúng trong phần bình luận bên dưới. Cảm ơn một lần nữa, tạm biệt Tôi có thể có 2 máy chủ MySQL không?Có thể sử dụng một tệp nhị phân máy chủ MySQL khác cho mỗi phiên bản hoặc sử dụng cùng một tệp nhị phân cho nhiều phiên bản hoặc bất kỳ sự kết hợp nào của hai phương pháp . Ví dụ: bạn có thể chạy một máy chủ từ MySQL 5. 7 và một từ MySQL 8. 0, để xem các phiên bản khác nhau xử lý một khối lượng công việc nhất định như thế nào.
Bạn có thể có nhiều cơ sở dữ liệu MySQL không?Trong Cơ sở dữ liệu Azure cho máy chủ MySQL, bạn có thể tạo một hoặc nhiều cơ sở dữ liệu . Bạn có thể chọn tạo một cơ sở dữ liệu trên mỗi máy chủ để sử dụng tất cả tài nguyên hoặc tạo nhiều cơ sở dữ liệu để chia sẻ tài nguyên. |