mysql 连接器 python,NotSupportedError

从Mongodb导出一批 Json 数据,需要转到 Mysql,但是导出的 Json 格式无法直接写入mysql,就想着先把数据转为Pandas的dataframe,然后再通过dataframe写入sql:

import pandas as pd
from sqlalchemy import create_engine
import json


def json_to_sql(jsonfile, sqlname):
    df = pd.read_json(jsonfile, lines=True)
    conn = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/ScientificName?charset=utf8')
    for i in range(len(df)):
        df['chromosomes'][i] = json.dumps(df['chromosomes'][i][0], ensure_ascii=False)
    print(df['chromosomes'][0])
    df.to_sql(name=sqlname, con=conn, if_exists='append', index=False)
        

json_to_sql('/Downloads/数据表JSON-20180118/speciesHengduan.json', 'speciesHengduan')

结果运行时总是报错,用的 mysql 版本是 8.0.11:

NotSupportedError: (mysql.connector.errors.NotSupportedError) Authentication plugin 'caching_sha2_password' is not supported (Background on this error at: http://sqlalche.me/e/tw8g)
阅读 2.8k
1 个回答

MySQL8在这里和低版本不兼容,你可以重新安装MySQL(或者用Reconfigure选项),把认证的选项设置为“Use Legacy Authentication Method”, 或者你如果不是必须要用MySQL 8,可以降级到低版本。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题