首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >需要更改MySQL连接选项的建议(Python)

需要更改MySQL连接选项的建议(Python)
EN

Stack Overflow用户
提问于 2018-06-22 06:14:59
回答 2查看 227关注 0票数 -2

几天来,我一直在尝试用MySQL运行一些代码来填充我已经创建的数据库。最初运行时,我得到了错误1251:“客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端”。在我找到的MySQL文档和堆栈溢出答案中,我被引导将默认的insecureAuth设置从默认的false更改为true。这是我目前使用的代码...

代码语言:javascript
复制
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)

我最近收到一个错误:"non-keyword arg after keyword arg“。我试图切换顺序,但没有成功,这让我相信我可能没有正确地更改默认设置。任何帮助或建议都是非常感谢的。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-22 06:26:19

该问题看起来来自{insecureAuth:true},其中它不是关键字参数。ie var=value。我不熟悉这个库,但如果这是一个关键字,那么您应该能够将其设置为关键字或使用**传递它

代码语言:javascript
复制
con = mdb.connect(host=db_host,user=db_user,passwd=db_pass,db=db_name,insecureAuth=True)

代码语言:javascript
复制
con = mdb.connect(host=db_host,user=db_user,passwd=db_pass,db=db_name,**{insecureAuth:true})
票数 0
EN

Stack Overflow用户

发布于 2018-06-24 10:09:29

我设法通过获取密码的公钥并使用它来代替普通密码,从而使代码段正常工作。这代替了使用insecureAuth参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50978144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档