Python3.7使用mysqlclient连接数据库出现类型错误求助
解决mysqlclient连接MySQL时的TypeError问题
嗨,我立刻就发现问题啦——你在调用MySQLdb.connect()的时候,把端口参数写成了port='3306',也就是字符串类型,但mysqlclient的连接方法要求port必须是整数类型!
问题原因
虽然mysql.connector对参数类型比较宽松,能自动兼容字符串格式的端口号,但mysqlclient的底层实现对参数类型的校验更严格,这就是为什么你之前用connector一切正常,换成mysqlclient就抛出这个类型错误了。
修复后的代码
只需要把端口号的引号去掉,改成整数格式即可,另外别忘了执行插入后提交事务(不然数据不会真正写入数据库):
import MySQLdb import mysql.connector # 将port='3306'改为port=3306 db = MySQLdb.connect(host='localhost', port=3306, database='py_test', user='arnav', password='1234') db_cur = db.cursor() db_cur.execute('insert into pass values ( \'arnav\', \'0000\' )') # 提交事务,确保插入操作生效 db.commit() # 最后记得关闭连接(可选但推荐) db.close()
额外提示
如果你之后遇到类似mysqlclient的参数错误,优先检查参数类型是否符合要求——它和mysql.connector在参数处理上确实存在一些细节差异哦。
内容的提问来源于stack exchange,提问作者Arnav Mehta
相关产品推荐
相关产品推荐

