Hướng dẫn docker install mysql client - docker cài đặt máy khách mysql
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 Trước tiên, nếu máy bạn chưa có Docker, hãy cài đặt theo hướng dẫn tại: https://docs.docker.com/install/ Nội dung chính Các bước cài đặt:
1. Tạo Docker network Việc tạo Docker network giúp cho các Docker container trong cùng 1 network có thể giao tiếp với nhau thông qua container name Chạy lệnh sau:
Lệnh trên sẽ tạo một Docker network có tên là mysql. Chúng ta sẽ đặt 2 Docker container chạy MySQL và phpMyAdmin bên trong network mysql này 2. Khởi tạo Docker container từ Docker image của MySQL Trước tiên, hãy tạo một thư mục dùng để lưu dữ liệu của Docker container, ví dụ: /home/moe/mysql_data Sau đó, chạy lệnh:
trong đó:
3. Khởi tạo Docker container từ Docker image của phpMyAdmin Chạy lệnh sau:
trong đó:
3. Khởi tạo Docker container từ Docker image của phpMyAdmin --name myadmin: tên container--network mysql: đặt container này vào trong network mysql. Lúc này 2 container chạy phpMyAdmin và MySQL đều ở trong cùng 1 network -e PMA_HOST=learn_mysql: địa chỉ IP của MySQL server. Vì chúng ta đã đặt 2 container chạy phpMyAdmin và MySQL trong cùng 1 network (mysql) nên chúng ta có thể dùng tên container chạy MySQL (learn_mysql) cho biến môi trường nàyroot, mật khẩu chính là mật khẩu bạn đã đặt cho biến môi trường MYSQL_ROOT_PASSWORD khi khởi tạo MySQL container, như trong bài viết này thì mật khẩu tôi đặt là 123root, mật khẩu chính là mật khẩu bạn đã đặt cho biến môi trường MYSQL_ROOT_PASSWORD khi khởi tạo MySQL container, như trong bài viết này thì mật khẩu tôi đặt là 123 -p 8081:80: mapping cổng 80 của container với cổng 8081 của máy hostSau khi hoàn thành cả 3 bước trên, chúng ta truy cập vào địa chỉ: http://localhost:8081/, xuất hiện màn hình: --name myadmin: tên container
-e PMA_HOST=learn_mysql: địa chỉ IP của MySQL server. Vì chúng ta đã đặt 2 container chạy phpMyAdmin và MySQL trong cùng 1 network (mysql) nên chúng ta có thể dùng tên container chạy MySQL (learn_mysql) cho biến môi trường nàyroot, mật khẩu chính là mật khẩu bạn đã đặt cho biến môi trường MYSQL_ROOT_PASSWORD khi khởi tạo MySQL container, như trong bài viết này thì mật khẩu tôi đặt là 123 MySQL Database Replication Trên Docker. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php. Giới thiệu về My SQL và các loại MySQL replication-p 8081:80: mapping cổng 80 của container với cổng 8081 của máy host Sau khi hoàn thành cả 3 bước trên, chúng ta truy cập vào địa chỉ: http://localhost:8081/, xuất hiện màn hình: Bài viết này sẽ giới thiệu đến bạn kiến thức về MySQL Database Replication Trên Docker. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php. MySQL Database Replication Trên Docker. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.
Giới thiệu master-slave replicationCập nhật hệ thống và cài đặt docker engine ## Demo mô hình replication master-slave trên docker. Cập nhật hệ thống và cài đặt docker engine# yum update # sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo # sudo yum install docker-ce-cli containerd.io docker-ce Pull images mysql# docker pull mysql Điều chỉnh file cấu hình my.cnf# docker run –rm -v /docker:/home/docker mysql cp /etc/mysql/my.cnf /home/docker * /docker/my.cnf bind-address = 0.0.0.0 server-id = 1 log_bin = mysql-bin Note: server-id là id duy nhất cho mỗi máy trong group replication: server-id là id duy nhất cho mỗi máy trong group replication: server-id là id duy nhất cho mỗi máy trong group replication Khởi động docker container master và slave# docker run –rm -v /docker:/home/docker mysql cp /etc/mysql/my.cnf /home/docker * /docker/my.cnf bind-address = 0.0.0.0 server-id = 1 log_bin = mysql-bin Note: server-id là id duy nhất cho mỗi máy trong group replication: server-id là id duy nhất cho mỗi máy trong group replication Khởi động docker container master và slave # docker run –rm -v /docker:/home/docker mysql cp /etc/mysql/my.cnf /home/docker * /docker/my.cnf bind-address = 0.0.0.0 server-id = 1 log_bin = mysql-bin Note: server-id là id duy nhất cho mỗi máy trong group replication: server-id là id duy nhất cho mỗi máy trong group replication Khởi động docker container master và slave # docker run -d –name mysql_master -h h_master \> -e MYSQL_ROOT_HOST=”%” \ > -e MYSQL_ROOT_PASSWORD=”rootpassword” \ > -v /docker/h_master/config/my.cnf:/etc/mysql/my.cnf \ > -v /docker/h_master/data:/home/docker/data \ > mysql
> -v /docker/h_slave/config/my.cnf:/etc/mysql/my.cnf \
Điều chỉnh thông tin master và slave Phía MASTER Kết nối đến container. # docker exec -it mysql_master bash > -e MYSQL_ROOT_PASSWORD=”rootpassword” \ > -v /docker/h_master/config/my.cnf:/etc/mysql/my.cnf \ > -v /docker/h_master/data:/home/docker/data \ > mysql
> -v /docker/h_slave/config/my.cnf:/etc/mysql/my.cnf \
Điều chỉnh thông tin master và slave Phía MASTER
# docker exec -it mysql_master bash
Phía SLAVE |