You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQLAlchemy连接Docker中MySQL服务器时出现DatabaseError

Docker部署的MySQL无法通过SQLAlchemy连接

我通过Docker部署了本地MySQL服务器,使用mysql/mysqlserver镜像,端口映射为3306。尝试用SQLAlchemy库连接该服务器进行Python操作数据库,但访问engine对象时返回数据库错误。

创建engine的代码:

def mysql_engine_generator():
    return create_engine("mysql+mysqlconnector://root:XXXXX@localhost:3306/mysql", echo=True) 

engine = mysql_engine_generator()

执行的SQL语句:

with engine.connect() as conn:
    conn.execute(text("CREATE TABLE some_table (x int, y int)"))

得到的错误信息:

DatabaseError: (mysql.connector.errors.DatabaseError) 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (111)

查看错误背景说明后,得知问题可能出在方言或数据库驱动而非SQLAlchemy本身,但我用的是MySQL官方文档推荐的驱动与方言组合,不清楚问题所在。

排查尝试:

  • 使用MySQL CLI执行CREATE TABLE some_table (x int, y int)可以正常创建表,说明SQL语句和数据库本身无问题
  • 更换驱动为mysqldb,出现操作错误:
OperationalError: (MySQLdb.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
  • 更换驱动为pymysql,出现错误:
OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)")

内容的提问来源于stack exchange,提问作者Victor Telles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:15:07