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