sqlalchemy 2013 Lost connection to MySQL server 解决方法

报错如下:

2013, 'Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)

解决方法:

sqlalchemy配置中添加如下:

# 回收连接
app.config["SQLALCHEMY_POOL_RECYCLE"] = 1800
# 每次执行sql前 悲观检查db是否可用;虽然资源稍微额外的消耗,但是简单可靠
app.config["SQLALCHEMY_ENGINE_OPTIONS"] = {'pool_pre_ping': True}

engine = create_engine("mysql+pymysql://user:pw@host/db", pool_pre_ping=True,pool_recycle=1800)

注意点:

 

1. SQLALCHEMY_POOL_RECYCLE的值 应该比mysql中设置的 interactive_timeout 和 wait_timeout 值小 才有效;

2. SQLALCHEMY_POOL_TIMEOUT的值(默认10s) 应该比 mysql的 connect_timeout值 小或者等于;

否则 都有可能出现 如上错误;

 

相关连接:

https://docs.sqlalchemy.org/en/13/core/pooling.html#pool-disconnects

https://sanyuesha.com/2019/01/02/sqlalchemy-pool-mechanism/

https://www.cnblogs.com/cwp-bg/p/8876012.html

https://blog.csdn.net/mawenshu316143866/article/details/82381202

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用pandas和sqlalchemy库来实现将Excel数据导入MySQL数据库的功能。具体步骤如下: 1. 安装pandas和sqlalchemy库 可以使用pip命令进行安装: ``` pip install pandas sqlalchemy ``` 2. 读取Excel数据 使用pandas库中的read_excel函数读取Excel文件中的数据,并将其转换为DataFrame对象: ```python import pandas as pd # 读取Excel文件 data = pd.read_excel('data.xlsx') ``` 3. 建立数据库连接 使用sqlalchemy库中的create_engine函数建立与MySQL数据库的连接: ```python from sqlalchemy import create_engine # 建立数据库连接 engine = create_engine('mysql+pymysql://username:password@host:port/database_name') ``` 其中,username为数据库用户名,password为密码,host为数据库主机名,port为端口号,database_name为要连接的数据库名称。 4. 将数据导入MySQL数据库 使用pandas库中的to_sql函数将DataFrame对象中的数据导入到MySQL数据库中: ```python # 将数据导入MySQL数据库 data.to_sql('table_name', engine, index=False, if_exists='replace') ``` 其中,table_name为要导入数据的表名,index=False表示不将DataFrame对象的索引列作为MySQL表的索引列,if_exists='replace'表示如果表已经存在,则先删除再重新创建。 完整的代码示例: ```python import pandas as pd from sqlalchemy import create_engine # 读取Excel文件 data = pd.read_excel('data.xlsx') # 建立数据库连接 engine = create_engine('mysql+pymysql://username:password@host:port/database_name') # 将数据导入MySQL数据库 data.to_sql('table_name', engine, index=False, if_exists='replace') ``` 需要根据实际情况修改连接数据库的参数和Excel文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值