Hướng dẫn mysql 5.7 docker - bộ dock mysql 5.7

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/

Các bước cài đặt:

  • Tạo Docker network
  • Khởi tạo Docker container từ Docker image của MySQL
  • Khởi tạo Docker container từ Docker image của phpMyAdmin

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:

docker network create mysql

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:

docker run --name learn_mysql --network mysql -v /home/moe/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7

trong đó:

  • --name learn_mysql: tên của container. Tên này sẽ được sử dụng ở bước sau, khi chúng ta khới tạo container chạy phpMyAdmin
  • --network mysql: đặt container này trong network mysql vừa được tạo ở bước 1
  • -v /home/moe/mysql_data:/var/lib/mysql : Volume dữ liệu từ container ra bên ngoài thư mục mysql_data mà chúng ta vừa tạo
  • -e MYSQL_ROOT_PASSWORD=123: đặt password cho user root. Mỗi một MySQL server khi được khởi tạo đều sẽ có một user root ban đầu.

3. Khởi tạo Docker container từ Docker image của phpMyAdmin

Chạy lệnh sau:

docker run --name myadmin -d --network mysql -p 8081:80 -e PMA_HOST=learn_mysql phpmyadmin/phpmyadmin

trong đó:

  • --name learn_mysql: tên của container. Tên này sẽ được sử dụng ở bước sau, khi chúng ta khới tạo container chạy phpMyAdmin
  • --network mysql: đặt container này trong network mysql vừa được tạo ở bước 1
  • -v /home/moe/mysql_data:/var/lib/mysql : Volume dữ liệu từ container ra bên ngoài thư mục mysql_data mà chúng ta vừa tạo
  • -e MYSQL_ROOT_PASSWORD=123: đặt password cho user root. Mỗi một MySQL server khi được khởi tạo đều sẽ có một user root ban đầu.

3. Khởi tạo Docker container từ Docker image của phpMyAdmin

Hướng dẫn mysql 5.7 docker - bộ dock mysql 5.7
--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à 123

Hướng dẫn mysql 5.7 docker - bộ dock mysql 5.7
-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:

Hướng dẫn mysql 5.7 docker - bộ dock mysql 5.7
--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

Hướng dẫn mysql 5.7 docker - bộ dock mysql 5.7

Đã đă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.7

Chạy các lệnh sau để cài đặt mysql 5.7:

sudo apt-get update
sudo apt-get install mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-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 Docker

Chạy lệnh sau để cài đặt docker:

curl -sSL https://get.docker.com/ | sh

Cài đặt MySQL 5.6

Chạy lệnh sau để cài đặt MySQL 5.6 trong docker container.

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6

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

mysql -u root -p --host=127.0.0.1 --port=3310

Kết nối đến MySQL 5.7

mysql -u root -p

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:

sudo docker start mysql-56-container

All rights reserved