Connect to Mysql in a Docker Container

Chia sẻ với mọi người cách connect container mysql in Docker. Thông thường mọi người cài đặt image mysql bằng Docker.  Để xây dựng cở sở dữ liệu cho project của mình

VD: Bạn đã cài đặt Docker rồi và đã có mysql container trong Docker. Bạn có thể sử dụng câu lệnh docker-compose ps hoặc docker ps để xem các container trong docker 

hoacode@HOACODEs-MacBook-Pro laravel-10 % docker-compose ps
          Name                     Command             State                              Ports
-----------------------------------------------------------------------------------------------------------------------
laravel-10-laravel.test-1   start-container         Up             0.0.0.0:5173->5173/tcp, 0.0.0.0:80->80/tcp, 8000/tcp
laravel-10-mysql-1          /entrypoint.sh mysqld   Up (healthy)   0.0.0.0:3306->3306/tcp, 33060/tcp, 33061/tcp

Giờ đây có nhiều bạn hỏi làm sao để chúng ta truy cập vào container mysql để thực hiện các thao tác : select, create, update, delete,....

Để connect đến container mysql ta thực hiện câu lệnh sau : 

docker exec -it container_mysql_name mysql -u username -p

Chú ý:

docker exec: Dùng để thực thi một lệnh trong một container Docker đang chạy.
-it: Chạy lệnh trong chế độ tương tác (interactive mode) và sử dụng terminal (TTY).
container_mysql_name: Tên của container Docker mà bạn muốn thực thi lệnh trong đó.
mysql: Là lệnh để thực thi MySQL client.
-u username: Sử dụng tài khoản người dùng MySQL với tên người dùng là "username". 
-p: Được sử dụng để yêu cầu nhập mật khẩu sau khi kết nối đến server MySQL.

Còn đầy là file .env trong laravel của mình. 

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel10_vue3_cart
DB_USERNAME=hoanguyencoder
DB_PASSWORD=12345678

Dưới đây là mình chạy câu lệnh thực tế như sau:

hoacode@HOACODEs-MacBook-Pro ~ % docker exec -it laravel-10-mysql-1 mysql -u hoanguyencoder -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| laravel10_vue3_cart |
| performance_schema  |
| testing             |
+---------------------+
4 rows in set (0.02 sec)

mysql> 

Chia sẽ thêm với mọi người , nếu bạn đang sử dụng Laravel Sail, thì bạn có thể run docker như sau:

./vendor/bin/sail up -d

+ Đóng docker lại

./vendor/bin/sail down -v

+ Kiểm tra version trong node

./vendor/bin/sail node -v
./vendor/bin/sail npm -v

+ Hoặc cài đặt thư viện khác

./vender/bin/sain composer require tymon/jwt-auth
./vender/bin/sain npm install --save-dev @vitejs/plugin-vue

Nói chung khi bạn đã sử dụng Laravel Sail, bạn nên dùng cú pháp của nó để cài đặt thư viện , để tránh gặp lỗi

Bài Viết Liên Quan

Messsage

Nếu bạn thích chia sẻ của tôi, đừng quên nhấn nút !ĐĂNG KÝ