如何更改MySQL连接选项 ?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (69)

我想在MySQL中运行一些代码来填充我已经创建的数据库,开始运行时,我得到了一个错误:“Client不支持服务器请求的身份验证协议;请考虑升级MySQL客户端”。 这是我目前使用的代码:

import datetime
import MySQLdb as mdb
from math import ceil

def obtain_btc():
    now = datetime.datetime.utcnow()
    symbols = ['BTC', 'Crypto', 'Bitcoin', 'No Sector', 'USD', now, now]
    return symbols

def insert_btc_symbols(symbols, insecureAuth):
    db_host = 'localhost'
    db_user = 'natrob'
    db_pass = '**********'
    db_name = 'securities_master'
    con = mdb.connect(host=db_host,user=db_user,passwd=db_pass,db=db_name,{insecureAuth:true})
    column_str = "ticker, instrument, name, sector, currency, created_date, last_updated_date"
    insert_str = (("%s, ")*7)[:2]
    final_str = ("INSERT INTO symbols (%s) VALUES (%s)" % (column_str,insert_str))
    print (final_str,len(symbols))

    with con:
        cur = con.cursor()
        for i in range(0,int(ceil(len(symbols)/100.0))):
            cur.executemany(final_str,symbols[i*100:(i+1)*100-1])

if __name__ == "__main__":
    symbols = obtain_btc()
    insert_btc_symbols(symbols)
提问于
用户回答回答于

问题似乎来自{insecureAuth:true},它不是关键字参数。 即var =值。 我不熟悉库,但如果这是一个关键字,那么你应该能够将它设置为关键字或通过**传递它:

con = mdb.connect(host=db_host,user=db_user,passwd=db_pass,db=db_name,insecureAuth=True)

con = mdb.connect(host=db_host,user=db_user,passwd=db_pass,db=db_name,**{insecureAuth:true})

扫码关注云+社区

领取腾讯云代金券