Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Hướng dẫn này giải thích phương pháp từng bước để thiết lập và sử dụng bộ chứa MySQL Docker với các ví dụ

Docker là một nền tảng điều phối vùng chứa cho phép chúng tôi chạy hình ảnh của bất kỳ ứng dụng nào (trong trường hợp này là máy chủ MySQL) trên hệ thống máy chủ (có thể hoạt động trong mọi hệ điều hành được cài đặt – ví dụ. Linux, Windows, MacOS, v.v.)

Sử dụng MySQL với docker sẽ giúp nhà phát triển hoặc bất kỳ ai muốn tìm hiểu hoặc thử nghiệm với MySQL mà không gặp rắc rối về bất kỳ cài đặt hoặc cấu hình nào

Chạy qua docker chỉ cần bạn cài đặt docker trong máy của mình, sau đó bạn có thể sử dụng các hình ảnh docker có sẵn của MySQL

=> Nhấp vào đây để xem toàn bộ loạt bài hướng dẫn về MySQL

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Bạn sẽ học được gì

  • Hiểu về MySQL Docker
    • Khái niệm vùng chứa MySQL
    • Điều kiện tiên quyết. Cài đặt Docker
    • Các bước thiết lập MySQL với Docker
    • Kết nối với MySQL Docker từ máy chủ
    • Thiết lập MySQL Docker bằng Docker Compose File
    • Các câu hỏi thường gặp
  • Phần kết luận
    • đề xuất đọc

Hiểu về MySQL Docker

Chạy MySQL với bộ chứa Docker là một cơ chế được sử dụng rộng rãi, đặc biệt đối với kiến ​​trúc vi dịch vụ, nơi thông thường mỗi vi dịch vụ hoạt động với cơ sở dữ liệu/bảng riêng và các thử nghiệm thành phần/tích hợp riêng biệt có thể được thực thi trên các phiên bản cơ sở dữ liệu được chứa trong bộ chứa

Khái niệm vùng chứa MySQL

Hãy nghĩ về bộ chứa docker như một máy ảo nhẹ có thể chạy độc lập với bất kỳ ứng dụng nào khác (và có thể sống trong ngữ cảnh của chính nó). Bất kỳ ứng dụng nào – ví dụ: MySQL, trong trường hợp này, có thể được nhóm lại với nhau dưới dạng một bộ chứa và có thể được triển khai trên máy chủ cục bộ hoặc máy chủ từ xa

Giờ đây, vùng chứa này là một hệ sinh thái nhỏ và có tất cả các thành phần được kết hợp với nhau để MySQL thực thi đúng cách

Điều kiện tiên quyết. Cài đặt Docker

Để tạo MySQL làm bộ chứa docker, máy chủ phải cài đặt docker

>> Đề xuất đọc để cài đặt Docker=> Cài đặt và giới thiệu về Docker

Để xác thực cài đặt docker, chỉ cần chạy lệnh bên dưới

docker version

Nếu đầu ra hiển thị như bên dưới, điều này có nghĩa là quá trình cài đặt docker đã thành công

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Các bước thiết lập MySQL với Docker

#1) Kéo hình ảnh docker mong muốn

Hình ảnh Docker cho MySQL có thể được lấy từ trung tâm docker. Chúng tôi sẽ lấy hình ảnh mới nhất của máy chủ mysql từ trung tâm docker trong ví dụ của chúng tôi. Docker container image được xuất bản thông qua các nguồn chính thức trên docker hub

>> Bấm vào đây để tìm tất cả các hình ảnh/phiên bản docker có sẵn của MySQL

Trừ khi một phiên bản cụ thể được yêu cầu, chúng tôi luôn có thể chỉ định thẻ là 'mới nhất', thẻ này sẽ lấy phiên bản MySQL mới nhất hiện có từ sổ đăng ký trung tâm docker thường được gọi là trung tâm docker

Cú pháp kéo hình ảnh docker

docker pull mysql:latest

Sau khi thực hiện, bạn sẽ thấy đầu ra như bên dưới

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Khi hình ảnh vùng chứa được tải xuống đầy đủ trên máy chủ, bạn có thể xem tất cả các hình ảnh đã tải xuống bằng cách chạy lệnh bên dưới

docker image ls

#2) Bắt đầu vùng chứa với hình ảnh được kéo

Bây giờ, hãy bắt đầu một vùng chứa bằng hình ảnh docker đã tải xuống cho MySQL.
Theo mặc định, nếu không có mật khẩu gốc nào được chỉ định cùng với lệnh docker trong khi tạo vùng chứa, thì sẽ có một mật khẩu ngẫu nhiên được tạo cho người dùng gốc và để tìm nạp mật khẩu gốc, chúng ta cần phải .

a) Trước tiên hãy chạy vùng chứa với hình ảnh đã tải xuống

cú pháp

docker run --name {optional-name-for-the-container} -d {name of the image tag}

Trong cú pháp trên,

  • –name là một trường tùy chọn và có thể được sử dụng để chỉ định một tên thân thiện mà vùng chứa có thể được gọi sau này. Nếu điều này không được chỉ định - Docker gán tên được tạo ngẫu nhiên cho vùng chứa
  • -d đại diện cho tên của hình ảnh mà vùng chứa được tạo. Nếu hình ảnh đã được kéo trước đó, hình ảnh tương tự sẽ được sử dụng lại. Nếu hình ảnh không tồn tại trên hệ thống cục bộ, thì trước tiên, điều này sẽ kéo hình ảnh từ trung tâm docker và sau đó tạo vùng chứa

Thí dụ. Chúng ta sẽ tạo một thùng chứa có tên learn-mysql-docker từ thẻ hình ảnh đã sử dụng trước đó – mysql. muộn nhất

docker run --name learn-mysql-docker -d mysql:latest -e MYSQL_RANDOM_ROOT_PASSWORD=1

Lưu ý việc sử dụng cờ -e, không có gì khác ngoài việc chỉ định một biến môi trường. Ở đây chúng tôi đã chỉ định giá trị cho MYSQL_RANDOM_ROOT_PASSWORD=1

Điều này có nghĩa là trong khi khởi động máy chủ MySQL, mật khẩu gốc sẽ được đặt thành Chuỗi được tạo ngẫu nhiên (sau này chúng ta sẽ xem trong phần tiếp theo, cách chúng ta có thể truy xuất mật khẩu ngẫu nhiên được tạo động đó thông qua nhật ký vùng chứa Docker)

Ghi chú. Cũng có các tùy chọn khác cho cài đặt mặc định của mật khẩu gốc

Các tùy chọn có sẵn như sau

  • Chỉ định mật khẩu tùy chỉnh. Sử dụng biến môi trường có tên MYSQL_ROOT_PASSWORD và đặt nó thành mật khẩu mong muốn cho người dùng root
  • Nhận mật khẩu ngẫu nhiên được tạo. Sử dụng biến môi trường có tên MYSQL_RANDOM_ROOT_PASSWORD và đặt giá trị thành 1
  • Đặt mật khẩu trống cho người dùng root. Sử dụng biến môi trường có tên MYSQL_ALLOW_EMPTY_PASSWORD và đặt giá trị này thành 1. Điều này sẽ đặt mật khẩu trống/null cho người dùng root

Có sẵn một biến môi trường khác, đó là MYSQL_ONETIME_PASSWORD. Điều này, khi được đặt thành true (1), sẽ làm hết hạn mật khẩu người dùng root và yêu cầu người dùng tạo mật khẩu mới sau lần đăng nhập đầu tiên. (Xin lưu ý rằng biến env này chỉ được áp dụng trong các phiên bản MySQL sau 5. 6)

đầu ra

Khi lệnh trên được thực thi, bạn sẽ thấy docker hiển thị ID của vùng chứa đã tạo

Ví dụ

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Hãy xác thực xem vùng chứa đã được tạo thành công hay chưa bằng cách liệt kê các vùng chứa docker có sẵn trên máy chủ và lọc tên vùng chứa mà chúng tôi đã chỉ định

docker container ls -a | grep "learn-mysql-docker"

Bạn sẽ thấy kết quả như bên dưới (nếu vùng chứa được khởi động thành công)

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

b) Tìm nạp mật khẩu gốc. Để kết nối với người dùng root, chúng tôi cần nhập mật khẩu. Vì chúng tôi đã đề cập đến biến env để đặt/cho phép mật khẩu ngẫu nhiên, chúng tôi sẽ tìm nạp mật khẩu này từ nhật ký bộ chứa Docker

Thực hiện lệnh bên dưới để tìm nạp nhật ký và mật khẩu được tạo ngẫu nhiên

docker logs learn-mysql-docker | grep "GENERATED ROOT PASSWORD:"

đầu ra

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Như được đánh dấu trong hình trên, bạn có thể thấy một mật khẩu ngẫu nhiên đã được tạo. Trong các phần tiếp theo, chúng tôi sẽ sử dụng mật khẩu này để đăng nhập với người dùng root

c) Làm cách nào để khởi động bộ chứa docker với mật khẩu mong muốn?
Nếu chúng tôi không muốn tạo mật khẩu ngẫu nhiên khi khởi động bộ chứa, chúng tôi có thể chỉ định một mật khẩu khác .

Trong trường hợp này, lệnh tạo vùng chứa như sau

docker run --name learn-mysql-docker -d mysql:latest -e MYSQL_ROOT_PASSWORD=`password123`

#3) Đăng nhập vào container đã tạo

Để làm như vậy, chúng tôi sẽ sử dụng tên vùng chứa (hoặc id) đã tạo và đăng nhập vào ứng dụng bash shell trong vùng chứa

________số 8

Nếu container đã hoạt động và được tạo thành công, sau khi chạy lệnh trên, bạn sẽ thấy bash shell bên trong container

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

#4) Khởi động vỏ MySQL

Sau khi đăng nhập vào vùng chứa, chúng tôi sẽ khởi động trình bao MySQL với người dùng root và chỉ định mật khẩu được tạo ngẫu nhiên

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

#5) Thực thi các ví dụ về lệnh MySQL

Khi chúng tôi đã đăng nhập bằng người dùng root, bây giờ hãy thử thực hiện một số lệnh đơn giản để đảm bảo mọi thứ hoạt động tốt

a) HIỂN THỊ tất cả cơ sở dữ liệu. Thực hiện lệnh dưới đây

SHOW DATABASES;

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

b) Thay đổi mật khẩu của người dùng root thành 'Mật khẩu' - Thực hiện lệnh bên dưới và thử đăng nhập lại với người dùng root (đối với mật khẩu mới i. e. Mật khẩu, được đặt bởi lệnh này)

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Kết nối với MySQL Docker từ máy chủ

Ở phần trên, chúng ta đã đăng nhập vào MySQL shell bên trong docker container. Chúng tôi cũng có thể hiển thị cổng từ bộ chứa MySQL trong docker sang cổng cục bộ và sử dụng cổng đó để phát triển cục bộ để kết nối với MySQL.
Hãy thử tìm hiểu các bước khác nhau có liên quan ở đây.

#1) Bắt đầu vùng chứa và ánh xạ tới một cổng cục bộ. Trong bước này, chúng tôi sẽ ánh xạ cổng từ bộ chứa docker sang một cổng trên localhost sẽ được sử dụng để kết nối với MySQL

a) Đầu tiên dừng/xóa vùng chứa mà chúng ta đã tạo trong các phần trước. Điều này là bắt buộc để tránh nhầm lẫn và nhận các lỗi liên quan đến địa chỉ cổng

Các lệnh cần thực hiện là

docker pull mysql:latest
0

Khi vùng chứa bị dừng, chúng ta có thể xóa vùng chứa bằng lệnh bên dưới

docker pull mysql:latest
1

b) Sau khi vùng chứa bị xóa, chúng ta có thể bắt đầu một vùng chứa mới có cùng hình ảnh MySQL và cũng ánh xạ cổng docker sang cổng máy chủ cục bộ

Điều này có thể được thực hiện bằng cách chạy lệnh dưới đây

docker pull mysql:latest
2

Hãy cố gắng hiểu lệnh trên

  • -p đại diện cho cổng và 13306. 3306 đại diện cho việc ánh xạ cổng 3306 từ bộ chứa docker sang 13306 trên máy chủ cục bộ (hoặc máy chủ nơi có bộ chứa)
  • –name là tên thân thiện cho docker container mà chúng ta đang khởi tạo
  • -e đại diện cho các biến Môi trường. Chúng tôi đang đặt MYSQL_ROOT_PASSWORD thành 'Mật khẩu', đây không phải là mật khẩu cho người dùng root
  • -d đại diện cho tên của hình ảnh docker. Trong trường hợp này, mysql. mới nhất sẽ là hình ảnh sẽ được sử dụng để tạo vùng chứa

c) Đảm bảo rằng không có lỗi khi thực hiện lệnh trên. Nếu mọi thứ suôn sẻ, lệnh trên sẽ in ID vùng chứa được tạo

Tham khảo hình ảnh bên dưới

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

#2) Sau khi vùng chứa được khởi động thành công, hãy kết nối với MySQL từ localhost - sử dụng các công cụ dòng lệnh hoặc GUI như MySQL workbench

a) Hãy chạy/kết nối với cơ sở dữ liệu MySQL thông qua dòng lệnh (Điều kiện tiên quyết – vui lòng đảm bảo rằng máy chủ cục bộ cũng đã cài đặt các công cụ Dòng lệnh MySQL)

docker pull mysql:latest
3

Khi lệnh được thực thi, bạn sẽ thấy rằng mình đã được kết nối với phiên bản MySQL dựa trên docker. Bạn có thể thử chạy bất kỳ lệnh nào như

SHOW DATABASES;

Và đảm bảo rằng thiết lập đang hoạt động tốt

b) Để kết nối qua bàn làm việc của MySQL, bạn chỉ cần chỉ định tên máy chủ là localhost và số cổng. như cổng được ánh xạ đã được sử dụng

Thiết lập kết nối mới với localhost và cổng là 13306

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Lưu trữ mật khẩu trong móc khóa như trong hình bên dưới

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Sau đó, kết nối với cơ sở dữ liệu

Thiết lập MySQL Docker bằng Docker Compose File

Docker soạn thảo là các chi tiết cần thiết để thiết lập hình ảnh/bộ chứa docker ở dạng mẫu, ở định dạng YAML. Điều này giúp dễ dàng chia sẻ và kiểm tra nó trong các hệ thống kiểm soát phiên bản như TFS hoặc GIT, nơi bất kỳ ai làm việc trong dự án có thể chỉ cần lấy tệp này và thực thi nó để thiết lập vùng chứa docker cần thiết với thông tin cần thiết

Có một số tiện ích và trang web cho phép bạn tạo các tệp docker-compose một cách dễ dàng

Chúng ta có thể sử dụng cái từ đây và chỉ cần dán lệnh docker mà chúng ta đã sử dụng để tạo vùng chứa

Tham khảo hình ảnh bên dưới

Làm cách nào để cập nhật cơ sở dữ liệu mysql?

Chúng ta có thể sao chép nội dung của tệp đã tạo và lưu nội dung với tệp có tên docker-compose. yaml trong một thư mục trên máy tính để bàn/máy tính xách tay của bạn

Sau khi tệp được lưu, hãy điều hướng đến thư mục (nơi tệp được lưu) và chỉ cần chạy lệnh bên dưới

docker pull mysql:latest
5

Nếu nội dung của tệp soạn thảo là chính xác và hình ảnh có sẵn, bộ chứa docker mới sẽ được bắt đầu (và có thể được sử dụng theo cách tương tự như đã giải thích trong các phần trước của bài viết này)

Các câu hỏi thường gặp

Q #1) Làm cách nào để tạo cơ sở dữ liệu trong MySQL Docker?

Câu trả lời. MySQL Docker trong một phiên bản vùng chứa có thể được kết nối thông qua dòng lệnh bằng cách đăng nhập vào vùng chứa. Khi kết nối được thiết lập, bất kỳ lệnh SQL nào cũng có thể được thực thi

Để kết nối với MySQL bên trong vùng chứa, đây là cú pháp

docker pull mysql:latest
6

Khi lệnh trên được thực thi, bạn sẽ được nhắc nhập mật khẩu cơ sở dữ liệu. Và khi mật khẩu được xác minh, bạn có thể thực thi bất kỳ lệnh dựa trên SQL nào

Q #2) Làm cách nào để hiển thị một cổng cụ thể từ docker cho MySQL?

Câu trả lời. Ánh xạ cổng có thể được chỉ định trong khi vùng chứa docker đang được tạo. Ví dụ: nếu bạn muốn ánh xạ cổng docker tới một cổng cụ thể trên máy chủ cục bộ của mình, bạn có thể sử dụng lệnh như

docker pull mysql:latest
2

Ở đây 13306 là cổng trong máy chủ và 3306 là cổng trong vùng chứa

Q #3) Làm cách nào để khởi động lại/dừng và xóa bộ chứa MySQL dựa trên docker?

Câu trả lời. Có một số lệnh tiện dụng và hữu ích cho docker container

  • Khởi động lại. Lệnh này được sử dụng để khởi động lại một container đang chạy
docker pull mysql:latest
8
  • Dừng lại. Lệnh này sẽ tạm thời dừng vùng chứa đang chạy (và có thể được tiếp tục/khởi động lại sau)
docker pull mysql:latest
9
  • Loại bỏ. Thao tác này sẽ xóa vùng chứa docker và mọi tài nguyên được liên kết với vùng chứa đó
docker image ls
0

Câu hỏi 4) Làm cách nào để kết nối với phiên bản MySQL được cập nhật từ máy chủ?

Câu trả lời. Sau khi cổng docker và cổng localhost được ánh xạ, chúng ta có thể kết nối với phiên bản MySQL nằm bên trong docker từ localhost thông qua dòng lệnh hoặc thông qua các công cụ giao diện người dùng như bàn làm việc của MySQL

Để bắt đầu thông qua dòng lệnh – Công cụ dòng lệnh MySQL cũng nên được cài đặt trên máy chủ

Lệnh dưới đây có thể được sử dụng để kết nối với phiên bản MySQL trong docker thông qua máy chủ

docker pull mysql:latest
3

Q #5) Làm cách nào để chạy một phiên bản cụ thể của MySQL bằng Docker?

Câu trả lời. Trong khi chỉ định tùy chọn hình ảnh docker (sử dụng -d), trong khi tạo vùng chứa, chúng ta có thể chỉ định các hình ảnh/phiên bản có sẵn của vùng chứa

Nếu cái mới nhất được chỉ định, nó sẽ tìm nạp hình ảnh được xuất bản mới nhất của vùng chứa đã cho

Ví dụ: đối với MySQL, chúng tôi có thể chỉ định mysql. mới nhất để lấy phiên bản mới nhất và một cái gì đó như mysql. 8. 0. 22 chẳng hạn để lấy phiên bản 8. 0. 22

>> Tham khảo tài liệu Docker Hub dành cho MySQL để xem danh sách đầy đủ tất cả các phiên bản có sẵn

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về cách thiết lập máy chủ MySQL bằng Docker thay vì máy chủ thực tế

Docker là một hệ thống điều phối vùng chứa mạnh mẽ, cho phép người dùng lưu trữ một số ứng dụng dưới dạng vùng chứa và cho phép chúng được sử dụng như một hệ thống biệt lập trong chính nó. Nó cũng yêu cầu thiết lập tối thiểu và cung cấp các phương tiện nhanh chóng để tránh mọi rắc rối khi thiết lập chỉ bằng một vài lệnh

Ngày nay, với kiến ​​trúc vi dịch vụ trong đó các dịch vụ vi mô khác nhau dựa vào cơ sở dữ liệu của riêng chúng, việc triển khai các máy chủ MySQL dưới dạng bộ chứa Docker đã trở thành một thông lệ khá phổ biến.

Nó cũng được sử dụng rộng rãi cho bất kỳ thực thi cục bộ nào, tạo bằng chứng về các khái niệm hoặc thậm chí để chạy thử nghiệm tích hợp từ đầu đến cuối trong một môi trường biệt lập

Tôi có thể chạy MySQL trong bộ chứa Docker không?

Khái niệm vùng chứa MySQL . Bất kỳ ứng dụng nào – ví dụ: MySQL, trong trường hợp này, có thể được nhóm lại với nhau dưới dạng bộ chứa và có thể được triển khai trên máy chủ cục bộ hoặc máy chủ từ xa .

Bạn có thể Dockerize cơ sở dữ liệu không?

Docker rất phù hợp để chạy cơ sở dữ liệu trong môi trường phát triển . Bạn thậm chí có thể sử dụng nó cho cơ sở dữ liệu của các dự án nhỏ, không quan trọng chạy trên một máy chủ. Chỉ cần đảm bảo có các bản sao lưu thường xuyên (như bạn nên làm trong mọi trường hợp) và bạn sẽ ổn thôi.

Làm cách nào để viết Dockerfile cho MySQL?

3. 3 Tạo Image với Dockerfile . Open Docker terminal, navigate to the folder where the Dockerfile and MySQL backup file locates. Chạy lệnh sau. $ docker build -t jspmysql. 0. 1. Ở đây, jspmysql là tên chúng tôi đặt cho Hình ảnh và 0. 1 là số thẻ.

Làm cách nào để tạo hình ảnh Docker cho MySQL?

Chạy hình ảnh MySQL Docker sẽ như thế này. Cài đặt công cụ Docker trên máy chủ vật lý. .
Chuẩn bị một máy chủ với mạng thích hợp
Cài đặt hệ điều hành bạn chọn
Cài đặt các gói MySQL qua kho lưu trữ gói
Sửa đổi cấu hình MySQL cho phù hợp với nhu cầu của bạn
Bắt đầu dịch vụ MySQL