mysql连接不上

这两天遇到一个问题,自己做的程序模块,之前运行的好好的,突然报错,运行不了了。

pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno -8] Servname not supported for ai_socktype)")

上面是返回来的错误

最开始以为是mysql的问题,因为之前代码是可以运行的,近期也没有改动。只有PHP那边动过,所以怀疑是php那边的问题。php那边整了好久,问题都没有解决。

后来还是同事帮忙找出了问题,原来是调接口时参数顺序有问题,哭晕在厕所。。。。

import pymysql
from settings import logger
import settings
def read_from_mysql(EnterpriseID):
    host = settings.mysql_host
    user = settings.mysql_user
    password = settings.mysql_password
    port = settings.mysql_port  
    dbname='co' + EnterpriseID
    db = pymysql.connect(host,user, password,port, dbname, charset='utf8')
        
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    cursor.execute("ALTER DATABASE `%s` CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'" % dbname)
    try:
        sql = "select name,conform_words from c_conform_words where is_delete = 0" 
        cursor.execute(sql)
        date = cursor.fetchall()
           
    finally:
        db.close()
    return date

问题就出在这一行,把port放在了daname前面

db = pymysql.connect(host,user, password,port, dbname, charset='utf8')

找到的connecting函数的源码在这里插入图片描述
更改方案1:按函数顺序给值

db = pymysql.connect(host,user, password, dbname,port charset='utf8')

更改方案2:将实参赋值给形参,这样就不用管顺序了

db = pymysql.connect(host = host,user = user, password = password,port = port, database = dbname, charset='utf8')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值