MySQL数据库报错pymysql.err.InterfaceError: (0, '')

今天入库的时候出现了报错pymysql.err.InterfaceError: (0, ‘‘),经过排查,发现是由于把连接数据库的代码放到了插入函数的外部,导致多线程运行出错

 1 def write_into_db(data):
 2     db = pymysql.connect(host=db_host, user=db_user, password=db_password, port=db_port, db=db_name, charset=‘utf8‘)
 3     cursor = db.cursor()
 4     print(‘start inserting into db‘)
 5     print(data)
 6     t = datetime.now()
 7     t = str(t).split(‘.‘)[0]
 8     sql = "INSERT INTO fixed_asset_new (resource_id,resource_type,name,address,location,land_use,sell_type,land_type,is_bid,deal_status,source_url,province,city,district,plot_rate,declaration_time,start_time,expiration_time,start_price,transaction_price,min_raise_price,cash_deposit,trading_place,assignee,fixture_time,consult_tel,subject_type,housing_area,land_area,evaluate_price,auction_stage,memo,is_deleted,gmt_created,gmt_modified) VALUES (%d,%d,‘%s‘,‘%s‘,‘%s‘,%d,%d,%d,%d,%d,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,%d,%d,%d,%d,‘%s‘,‘%s‘,‘%s‘,‘%s‘,%d ,‘%s‘,‘%s‘,%d,%d,‘%s‘,%d,‘%s‘,‘%s‘)" % (data[‘resource_id‘],data[‘resource_type‘],data[‘name‘],data[‘address‘],data[‘location‘],data[‘land_use‘],data[‘sell_type‘],data[‘land_type‘],0,data[‘deal_status‘],data[‘source_url‘],data[‘province‘],data[‘city‘],data[‘district‘],data[‘plot_rate‘],data[‘declaration_time‘],data[‘start_time‘],data[‘expiration_time‘],data[‘start_price‘],data[‘transaction_price‘],data[‘min_raise_price‘],data[‘cash_deposit‘],data[‘trading_place‘],data[‘assignee‘],data[‘fixture_time‘],data[‘consult_tel‘],data[‘subject_type‘],data[‘housing_area‘],data[‘land_area‘],data[‘evaluate_price‘],data[‘auction_stage‘],data[‘memo‘],data[‘is_deleted‘],t,t)
 9     try:
10         cursor.execute(sql)
11         db.commit()
12         print(‘successful‘)
13     except Exception as e:
14         print(e)
15         db.rollback()

也就是把2,3行代码放在了函数外面,而write_into_db函数是放在线程主函数中的,如果放在函数外面,就会导致无法连接数据库

MySQL数据库报错pymysql.err.InterfaceError: (0, '')

原文地址:https://www.cnblogs.com/yqpy/p/8963700.html

时间: 2024-11-03 22:46:18

MySQL数据库报错pymysql.err.InterfaceError: (0, '')的相关文章

pymysql.err.InterfaceError: (0, '')解决办法

导致这个错误的原因是通过pymysql连接MySQL,没有关闭连接的操作,所以短时间内不会出问题,长时间保持这个连接会出现连接混乱.虽然看着自己的代码没错,还是会报 pymysql.err.InterfaceError: (0, '')错误.所以这个连接要么连上之后,用完就关闭.要么就用下面的代码,检查连接是否存在,断开的话会重连. db = pymysql.connect(host='127.0.0.1',port=3306,user='user', passwd='pwd', db='db_

Emoji表情符号录入MySQL数据库报错的解决方案

前言:手机app应用评论的时候,恢复表情符号,提示失败.?1,查看tomcat后台日志,核心报错信息如下:  Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysql.

报错pymysql.err.DataError: (1406, "Data too long for column 'gender' at row 1")

在Django默认的admin后台创建超级用户时, 报错pymysql.err.DataError: (1406, "Data too long for column 'gender' at row 1")的解决方法. 创建过程为: 点击tool菜单的run manage.py task,输入createsuperuser,运行,按提示输入用户名,邮件,密码,以及密码确认. 解决方法为: 在pycharm中按快捷键ctr+h,查找到gender的相应字段,如图: 我们可以看到设置的ge

Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法

#在数据库的命令行中输入以下代码即可解决,密码必须要修改 可以再次执行将密码改回来. use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法 原文地址:https://www.cnblogs.com/liuha

java插入数据至mysql数据库报错:check the manual that coresponds to your mysql server version for the right syntax to use near 'condition)values...解决方案

MySQL5.X(本地数据库) 使用java向表中插入数据时,每次数据库更新,pstm.executeUpdate();就会跳到IO报错,提示原因是sql语法有问题,如题可见 当测试插入数据不含condition字段时,插入成功,尝试更名为conDition时,仍报错 解决方案: 更改condition为conDi,原因可能时因为condition为数据库或java关键字不能使用,更名后不再受影响,插入成功. java插入数据至mysql数据库报错:check the manual that c

Python - - MySQL数据库 - - 报错锦集

注:环境配置信息,系统环境CentOS 7.4,数据库版本 mysql-5.7.24 1,跳过授权表 # 在命令行跳过授权表命令 mysqld_safe --skip-grant-tables & # 在 my.cnf 文件配置跳过授权表命令 [mysqld] skip-grant-tables 2,更改root密码 # 方法一: update mysql.user set authentication_string=password('root') where user='root' and

关于springboot 连接mysql 数据库报错问题

springboot连接MySQL运行报错: The server time zone value '?D1ú±ê×?ê±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zon

Emoji表情符号录入MySQL数据库报错的解决方式

前言:手机app应用评论的时候,恢复表情符号.提示失败.?1,查看tomcat后台日志,核心报错信息例如以下:  Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysq

jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory (Could not create connection to database server.)

今天在学习jmeter的jdbc取样器,发现在配置完JDBC Connection Configuration和JDBC Request后,点击运行.在查看结果树中显示响应数据: Cannot create PoolableConnectionFactory (Could not create connection to database server.) 尝试多种方法后发现是由于mysql驱动版本太低导致. 报错时,我的jmeter版本是3.1,jdk版本是1.8,mysql版本是8.0.11