Show Đã đăng vào thg 7 22, 2019 6:53 SA 1 phút đọc 1 phút đọc Nếu bạn làm nhiều project sử dụng các phiên bản MySQL khác nhau, có thể bạn sẽ nghĩ đến cách chuyển đổi giữa các phiên bản MySQL mỗi khi làm việc với project sử dụng phiên bản MySQL khác. Tuy nhiên, điều này khá bất tiện. Bài viết này sẽ giúp bạn giải quyết vấn đề đó. Các bạn có thể xem thêm Hướng dẫn cài đặt nhiều phiên bản PHP chạy đồng thời với Apache trên Ubuntu. Trong bài viết này, giả định chúng ta cần sử dụng MySQL 5.6 và MySQL 5.7 trên cùng server, và phiên bản MySQL 5.7 được sử dụng nhiều hơn sẽ được chọn làm phiên bản chính. Chúng ta sẽ cài đặt MySQL 5.7 trước. Sau đó, sử dụng Docker để cài đặt phiên bản MySQL 5.6. Cài đặt MySQL 5.7Chạy các lệnh sau để cài đặt mysql 5.7:
Lúc này, MySQL 5.7 được cài đặt và chạy ở port 3306 (port mặc định). Cài đặt DockerChạy lệnh sau để cài đặt docker:
Cài đặt MySQL 5.6Chạy lệnh sau để cài đặt MySQL 5.6 trong docker container.
Lưu ý: rootpassword là password của user root, có thể thay đổi tuỳ ý. Container này chứa MySQL 5.6 được cài đặt với port 3306. Nhưng máy chủ sẽ sử dụng port 3310 để chuyển tiếp. Kết nối đến MySQL 5.6
Kết nối đến MySQL 5.7
Vậy là xong. Bây giờ bạn đã có MySQL 5.6 và MySQL 5.7 chạy trên cùng máy chủ. Lưu ý: Khi khởi động lại máy chủ, bạn cần chạy lệnh sau để khởi động lại MySQL 5.6 container:: Khi khởi động lại máy chủ, bạn cần chạy lệnh sau để khởi động lại MySQL 5.6 container:
All rights reserved 7.6.1 & NBSP; Các bước cơ bản để triển khai máy chủ MySQL với DockerCảnh báo Các hình ảnh Docker MySQL được duy trì bởi nhóm MySQL được xây dựng dành riêng cho các nền tảng Linux. Các nền tảng khác không được hỗ trợ và người dùng sử dụng các hình ảnh MySQL Docker trên chúng đang tự chịu rủi ro. Xem cuộc thảo luận ở đây để biết một số hạn chế đã biết để chạy các container này trên các hệ điều hành không linux.
Tải xuống hình ảnh docker máy chủ mysqlBắt đầu một phiên bản máy chủ MySQL Kết nối với máy chủ MySQL từ bên trong container: A subscription is required to use the Docker images for MySQL Enterprise Edition. Subscriptions work by a Bring Your Own License model; see How to Buy MySQL Products and Services for details. Truy cập vỏ container
Dừng và xóa một thùng chứa MySQL 8 label is used, and the image for the latest GA version of MySQL Community Server is downloaded. Refer to the list of tags for available versions on the mysql/mysql-server page in the Docker Hub. Nâng cấp thùng chứa máy chủ MySQL
Quan trọng
Truy cập OCR tại https://container-registry.oracle.com/ và chọn MySQL.
Trong danh sách các kho lưu trữ MySQL, chọn 1. , corresponding to different versions of MySQL Docker images provided by the OCR:
Đăng nhập vào OCR với máy khách Docker của bạn (lệnh 2) bằng lệnh 3:
Nhập máy chủ MySQL MERSQL cho trường và số phiên bản mong muốn trong trường. 0Bạn có thể liệt kê hình ảnh docker đã tải xuống với lệnh này: 1Bắt đầu một phiên bản máy chủ MySQLĐể khởi động một bộ chứa Docker mới cho máy chủ MySQL, hãy sử dụng lệnh sau: 2Tên hình ảnh có thể được lấy bằng lệnh Docker Images, như được giải thích trong việc tải xuống hình ảnh Docker máy chủ MySQL.docker images command, as explained in Downloading a MySQL Server Docker Image. Tùy chọn 5, để cung cấp một tên tùy chỉnh cho thùng chứa máy chủ của bạn, là tùy chọn; Nếu không có tên container được cung cấp, một cái ngẫu nhiên được tạo ra.Tùy chọn 6 là để định cấu hình chính sách khởi động lại cho container của bạn; Nó phải được đặt thành giá trị 7, để cho phép hỗ trợ khởi động lại máy chủ trong phiên khách (ví dụ, khi câu lệnh khởi động lại được thực hiện bởi máy khách hoặc trong quá trình cấu hình của một phiên bản cụm InnoDB). Với sự hỗ trợ để khởi động lại được bật, việc phát hành khởi động lại trong phiên máy khách khiến máy chủ và container dừng lại và sau đó khởi động lại. Hỗ trợ để khởi động lại máy chủ có sẵn cho MySQL 8.0.21 trở lên.Support for server restart is available for MySQL 8.0.21 and later.Ví dụ: để bắt đầu một container Docker mới cho máy chủ cộng đồng MySQL, hãy sử dụng lệnh này: 3Để bắt đầu một container Docker mới cho máy chủ doanh nghiệp MySQL với hình ảnh docker được tải xuống từ OCR, hãy sử dụng lệnh này: 4Để bắt đầu một container Docker mới cho máy chủ doanh nghiệp MySQL với hình ảnh docker được tải xuống từ hỗ trợ Oracle của tôi, hãy sử dụng lệnh này: 5Nếu hình ảnh Docker của tên và thẻ được chỉ định chưa được tải xuống bởi lệnh docker pull hoặc docker chạy trước đó, hình ảnh hiện đã được tải xuống. Khởi tạo cho container bắt đầu và container xuất hiện trong danh sách các container đang chạy khi bạn chạy lệnh Docker PS. Ví dụ:docker pull or docker run command, the image is now downloaded. Initialization for the container begins, and the container appears in the list of running containers when you run the docker ps command. For example: 6Việc khởi tạo container có thể mất một thời gian. Khi máy chủ sẵn sàng để sử dụng, 8 của container trong đầu ra của lệnh Docker PS thay đổi từ 9 thành 0.docker ps command changes from 9 to 0. Tùy chọn 1 được sử dụng trong lệnh docker chạy ở trên làm cho container chạy trong nền. Sử dụng lệnh này để theo dõi đầu ra từ thùng chứa:docker run command above makes the container run in the background. Use this command to monitor the output from the container: 7Sau khi khởi tạo kết thúc, đầu ra của lệnh sẽ chứa mật khẩu ngẫu nhiên được tạo cho người dùng gốc; Kiểm tra mật khẩu với, ví dụ, lệnh này: 8Kết nối với máy chủ MySQL từ bên trong containerKhi máy chủ đã sẵn sàng, bạn có thể chạy máy khách MySQL trong thùng chứa MySQL Server, bạn mới khởi động và kết nối nó với máy chủ MySQL. Sử dụng lệnh docker exec -it để khởi động máy khách MySQL bên trong thùng chứa Docker mà bạn đã bắt đầu, giống như sau:mysql client within the MySQL Server container you just started, and connect it to the MySQL Server. Use the docker exec -it command to start a mysql client inside the Docker container you have started, like the following: 9Khi được hỏi, hãy nhập mật khẩu gốc được tạo (xem bước cuối cùng trong việc bắt đầu một phiên bản máy chủ MySQL ở trên về cách tìm mật khẩu). Vì tùy chọn 2 là đúng theo mặc định, sau khi bạn đã kết nối máy khách MySQL với máy chủ, bạn phải đặt lại mật khẩu gốc máy chủ bằng cách phát hành câu lệnh này:mysql client to the server, you must reset the server root password by issuing this statement: 0Thay thế 3 bằng mật khẩu bạn chọn. Khi mật khẩu được đặt lại, máy chủ đã sẵn sàng để sử dụng.Truy cập vỏ containerĐể có quyền truy cập shell vào thùng chứa máy chủ MySQL của bạn, hãy sử dụng lệnh docker exec -it để khởi động shell bash bên trong thùng chứa:docker exec -it command to start a bash shell inside the container: 1Sau đó, bạn có thể chạy các lệnh Linux bên trong container. Ví dụ: để xem nội dung trong thư mục dữ liệu của máy chủ bên trong thùng chứa, hãy sử dụng lệnh này: 2Dừng và xóa một thùng chứa MySQLĐể dừng thùng chứa máy chủ MySQL mà chúng tôi đã tạo, hãy sử dụng lệnh này: 3Docker Stop gửi tín hiệu Sigterm đến quy trình MySQLD, để máy chủ được tắt một cách duyên dáng. sends a SIGTERM signal to the mysqld process, so that the server is shut down gracefully. Cũng lưu ý rằng khi quá trình chính của container (MySQLD trong trường hợp hộp đựng máy chủ MySQL) bị dừng, container Docker sẽ tự động dừng lại.mysqld in the case of a MySQL Server container) is stopped, the Docker container stops automatically. Để khởi động lại container máy chủ MySQL: 4Để dừng lại và khởi động lại thùng chứa máy chủ MySQL bằng một lệnh duy nhất: 5Để xóa thùng chứa MySQL, hãy dừng nó trước và sau đó sử dụng lệnh Docker RM:docker rm command: 3 7Nếu bạn muốn âm lượng Docker cho thư mục dữ liệu của máy chủ sẽ bị xóa cùng một lúc, hãy thêm tùy chọn 4 vào lệnh docker RM.docker rm command. Nâng cấp thùng chứa máy chủ MySQLQuan trọng
Thực hiện theo các bước này để nâng cấp cài đặt Docker của MySQL 5.7 lên 8.0:
Thực hiện theo các bước tương tự để nâng cấp trong chuỗi 8.0 (nghĩa là, từ phát hành 8.0 .____ 47 đến 8.0 .________ 51): Dừng container gốc và bắt đầu một hình ảnh mới với hình ảnh mới hơn trên dữ liệu và cấu hình máy chủ cũ. Nếu bạn đã sử dụng thẻ 7 hoặc 8 khi bắt đầu container ban đầu của bạn và bây giờ có bản phát hành MySQL 8.0 mới mà bạn muốn nâng cấp lên, trước tiên bạn phải kéo hình ảnh cho bản phát hành mới với lệnh: 0Sau đó, bạn có thể nâng cấp bằng cách bắt đầu một thùng chứa mới có cùng thẻ trên dữ liệu và cấu hình cũ (điều chỉnh tên kho lưu trữ nếu bạn đang sử dụng phiên bản Enterprise của MySQL; xem tải xuống hình ảnh docker máy chủ MySQL):new container with the same tag on the old data and configuration (adjust the repository name if you are using the MySQL Enterprise Edition; see Downloading a MySQL Server Docker Image): 1Ghi chú Đối với MySQL 8.0.15 và trước đó: Bạn cần hoàn thành quy trình nâng cấp bằng cách chạy tiện ích MySQL_Upgrade trong thùng chứa máy chủ MySQL 8.0 (bước không bắt buộc cho MySQL 8.0.16 trở lên): You need to complete the upgrade process by running the mysql_upgrade utility in the MySQL 8.0 Server container (the step is not required for MySQL 8.0.16 and later):
Thêm các chủ đề về triển khai máy chủ MySQL với DockerĐể biết thêm các chủ đề về việc triển khai máy chủ MySQL với Docker như cấu hình máy chủ, dữ liệu và cấu hình tồn tại, nhật ký lỗi máy chủ và các biến môi trường container, xem Phần & NBSP; 7.6.2, Các chủ đề khác về triển khai Máy chủ MySQL với Docker. |