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')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章