我正在使用熊猫和sqlalchemy,并想将DataFrame加载到MySQL数据库中。我目前正在使用以下代码段:
db_connection = sqlalchemy.create_engine('mysql+mysqlconnector://user:pwd@hostname/db_name')
some_data_ref.to_sql(con=db_connection, name='db_table_name', if_exists='replace')
sqlalchemy
,pandas
在此之前已导入。
我的MySQL后端是8.x,我知道它使用的是caching_sha2_password
。如果我要使用mysql.connector.connect
连接到数据库,并且想使用mysql_native_password
方法,我知道我应该像这样指定auth_plugin = mysql_native_password
:
mysql.connector.connect(user=user, password=pw, host=host, database=db, auth_plugin='mysql_native_password')
我的问题:是否可以通过mysql_native_password
强制进行sqlalchemy.create_engine('mysql+mysqlconnector://...)
身份验证?
任何对此的建议将不胜感激...
答案 0 :(得分:2)
您可以使用connect_args
:
db_connection = sqlalchemy.create_engine(
'mysql+mysqlconnector://user:pwd@hostname/db_name',
connect_args={'auth_plugin': 'mysql_native_password'})
或URL query:
db_connection = sqlalchemy.create_engine(
'mysql+mysqlconnector://user:pwd@hostname/db_name?auth_plugin=mysql_native_password')