为了账号安全,请及时绑定邮箱和手机立即绑定

在更改MySQL连接选项(Python)时需要建议

在更改MySQL连接选项(Python)时需要建议

阿晨1998 2021-03-30 13:11:32
我被困了几天试图在MySQL中运行一些代码来填充我已经创建的数据库。最初在运行时出现错误1251:“客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端”。在我找到的MySQL文档和stackoverflow答案中,我被引导将默认的insecureAuth设置从默认的false更改为true。这是我当前正在使用的代码...import datetimeimport MySQLdb as mdbfrom math import ceildef obtain_btc():    now = datetime.datetime.utcnow()    symbols = ['BTC', 'Crypto', 'Bitcoin', 'No Sector', 'USD', now, now]    return symbolsdef 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)我最近遇到了错误:“关键字arg之后为非关键字arg”。我试图将顺序切换为无效,这使我相信我可能没有正确更改默认设置。任何帮助或建议,不胜感激。谢谢你。
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

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

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})



查看完整回答
反对 回复 2021-04-13
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

我设法通过获取密码的公钥并使用它代替普通密码来使代码部分起作用。这代替了使用insecureAuth参数。


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号