簡體   English   中英

Python 無法使用 docker 連接到 mysql

[英]Python can't connect to mysql using docker

我是 docker 的新手,現在我正在嘗試在我的 Mac 中使用 mysql 而不安裝它,所以我想使用 Docker 但我一直收到此錯誤

sqlalchemy.exc.InterfaceError: (mysql.connector.errors.InterfaceError) 2003: Can't connect to MySQL server on 'localhost:3306' (61 Connection denied)

重現問題:

我拉了mysql/mysql-server:

docker pull mysql/mysql-server

航站樓內:

docker run --name=mydb -d mysql/mysql-server

然后我把它的密碼改成:123456

在代碼database.py里面:

SQLALCHEMY_DATABASE_URL = 'mysql+mysqlconnector://mydb:123456@localhost:3306/authorize_info'

在這一步我會得到這個錯誤

sqlalchemy.exc.InterfaceError: (mysql.connector.errors.InterfaceError) 2003: Can't connect to MySQL server on 'localhost:3306' (61 Connection denied)

當我將“localhost”更改為“172.17.0.1”時,我也遇到了這個錯誤

我在哪里錯了,如何解決? 請幫我

當您運行容器時,它不會自動將其端口 map 其端口連接到您機器上的端口。 您需要使用-p選項告訴 docker 容器中的端口應該映射到本地計算機上的哪個端口。 如果您希望能夠通過使用本地計算機上的端口 3306 訪問容器中的端口 3306,您應該像這樣啟動容器

docker run --name=mydb -d -p 3306:3306 mysql/mysql-server

第一個數字是本地計算機上的端口,第二個數字是容器中的端口。

還有一件事。 如果您的應用程序與數據庫位於同一網絡中,您可以使用容器的用戶名進行連接。 如果沒有,您應該使用主機 IP 連接到數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM