Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Spring Boot + docker-compos + MySQL:Kết nối bị từ chối

Docker soạn luôn bắt đầu và dừng các vùng chứa theo thứ tự phụ thuộc hoặc thứ tự tuần tự trong tệp nếu không được cung cấp. Nhưng docker-compile không đảm bảo rằng nó sẽ đợi cho đến khi vùng chứa phụ thuộc đang chạy. Bạn có thể tham khảo tại đây để biết thêm chi tiết. Vì vậy, vấn đề ở đây là cơ sở dữ liệu của bạn chưa sẵn sàng khi spring-mysql của bạn vùng chứa cố gắng truy cập cơ sở dữ liệu. Vì vậy, giải pháp được đề xuất là bạn có thể sử dụng wait-for-it.sh hoặc tập lệnh tương tự để bọc spring-mysql của bạn khởi động ứng dụng ENTRYPOINT .

Ví dụ:nếu bạn sử dụng wait-for-it.sh ENTRYPOINT của bạn trong Dockerfile của bạn sẽ thay đổi thành sau sau khi sao chép tập lệnh trên vào thư mục gốc dự án của bạn:

ENTRYPOINT ["./wait-for-it.sh", "db:3306", "--", "java", "-jar", "app.jar"]

Và hai điều quan trọng khác cần xem xét ở đây là:

  • Không sử dụng các liên kết không được dùng nữa thay vào đó bạn nên sử dụng mạng do người dùng xác định. Tất cả các dịch vụ trong tệp docker-comp sẽ nằm trong một mạng duy nhất do người dùng xác định nếu bạn không xác định rõ ràng bất kỳ mạng nào. Vì vậy, bạn chỉ cần xóa các liên kết khỏi tệp soạn thảo.
  • Bạn không cần xuất bản cổng cho vùng chứa docker nếu bạn chỉ sử dụng nó trong mạng do người dùng xác định.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI 1130 (HY000):Máy chủ '' không được phép kết nối với máy chủ MySQL này

  2. Hướng dẫn thiết kế cơ sở dữ liệu cho trình quản lý tác vụ trong MySQL

  3. tomcat7 - jdbc datasource - Điều này rất có thể tạo ra rò rỉ bộ nhớ

  4. Khi chạy UPDATE ... datetime =NOW (); tất cả các hàng được cập nhật có cùng ngày / giờ không?

  5. Lấy các giá trị và số lượng duy nhất cho mỗi