Hướng dẫn docker can t connect to mysql - docker không thể kết nối với mysql
ĐƯỢC RỒI. Cuối cùng tôi đã giải quyết được vấn đề này. Dưới đây là giải pháp của tôi được sử dụng trong https://sqlflow.org/sqlflow. Show
Giải pháp hoàn chỉnhĐể làm cho bản demo khép kín, tôi đã chuyển tất cả các mã cần thiết sang https://github.com/wangkuiyi/mysql-server-in-docker. Chìa khóa của giải phápTôi không sử dụng hình ảnh chính thức trên dockerhub.com https://hub.docker.com/r/mysql/mysql-erver. Thay vào đó, tôi đã tự làm bằng cách cài đặt MySQL trên Ubuntu 18.04. Cách tiếp cận này cho tôi cơ hội để bắt đầu MySQLD và liên kết nó với 0,0.0.0 (tất cả các IPS).bind it to 0.0.0.0 (all IPs). Để biết chi tiết, vui lòng tham khảo các dòng này trong repo GitHub của tôi.
Để xác minh giải pháp của tôi
Kết nối từ một thùng chứa khác trên cùng một máy chủChúng tôi có thể chạy máy khách MySQL từ ngay cả một container khác (trên cùng một máy chủ).
Kết nối từ máy chủ khácTrên iMac của tôi, tôi cài đặt máy khách MySQL bằng homebrew.
Sau đó, tôi có thể truy cập vào máy chủ Ubuntu ở trên (192.168.1.22).
Kết nối từ một thùng chứa chạy trên máy chủ khácTôi thậm chí có thể chạy máy khách MySQL trong một thùng chứa chạy trên iMac để kết nối với máy chủ MySQL trong một thùng chứa trên máy trạm Ubuntu của tôi.
Một trường hợp đặc biệtTrong trường hợp chúng tôi chạy máy khách và máy chủ MySQL trong các thùng chứa riêng biệt chạy trên cùng một máy chủ - điều này có thể xảy ra khi chúng tôi thiết lập CI, chúng tôi không cần phải xây dựng hình ảnh Docker máy chủ MySQL của riêng mình. Thay vào đó, chúng ta có thể sử dụng 1 khi chúng ta chạy thùng chứa máy khách.Để khởi động máy chủ 0Để bắt đầu khách hàng 1 Hi, Tôi đã làm như sau để bắt đầu một thùng chứa docker mysql: 2Tôi đã xác minh rằng nó đang chạy với: 3Và cũng đã đăng nhập vào Conainer với: 4Những gì tôi không thể đạt được là kết nối thông qua máy chủ Docker MySQL-CLI với thùng chứa Docker như thế này: 5Cái này cũng không làm việc: 6Điều này cũng không hoạt động: 7Tôi đã phát hiện ra IP của container Docker trên cầu Docker: 8Nhưng sử dụng iPadress cũng không hoạt động: 9Tôi có quá ngu ngốc khi sử dụng Docker hay tôi đã nhận được một cái gì đó sai về mặt khái niệm hoặc một cái gì đó khác. Cảm ơn vì đã giác ngộ! Không thể kết nối với máy chủ MySQL trên Docker?Thông thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ. Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.
Tôi có thể sử dụng mysql với docker không?MySQL là một trong những cơ sở dữ liệu quan hệ tương thích SQL phổ biến nhất.Chạy MySQL bên trong container Docker cho phép bạn tách cơ sở dữ liệu của mình khỏi mã của mình.Bạn cũng có thể sử dụng một dàn nhạc container như Kubernetes để mở rộng quy mô MySQL độc lập với thể hiện máy chủ API của bạn.Running MySQL inside a Docker container lets you separate your database from your code. You can also use a container orchestrator like Kubernetes to scale MySQL independently of your API server instance.
Không thể kết nối với máy chủ MySQL thông qua ổ cắm?Một giải pháp khả thi khác cho> không thể kết nối với máy chủ MySQL cục bộ thông qua thông báo ổ cắm> là thử và kết nối với MySQL bằng địa chỉ IP 127.0.0.1 thay vì localhost.Khi bạn sử dụng localhost để kết nối với MySQL, hệ điều hành sử dụng đầu nối ổ cắm.try and connect to the MySQL using the 127.0. 0.1 ip address instead of localhost. When you use localhost to connect to MySQL, the operating system uses the socket connector.
Số cổng mặc định của MySQL là gì?Cổng 3306 là cổng mặc định cho Giao thức MySQL cổ điển (Cổng), được sử dụng bởi máy khách MySQL, đầu nối MySQL và các tiện ích như MySQLDump và MySQLPump. is the default port for the classic MySQL protocol ( port ), which is used by the mysql client, MySQL Connectors, and utilities such as mysqldump and mysqlpump. |