如何使用 mysqlconnector 获得 sqlalchemy.create_engine 以使用 mysql_native_password 进行连接?
How do I get sqlalchemy.create_engine with mysqlconnector to connect using mysql_native_password?
我正在使用 pandas 和 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')
我的问题:有没有办法强制使用 sqlalchemy.create_engine('mysql+mysqlconnector://...)
进行 mysql_native_password
身份验证?
如有任何建议,我们将不胜感激...
您可以使用 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')
我正在使用 pandas 和 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')
我的问题:有没有办法强制使用 sqlalchemy.create_engine('mysql+mysqlconnector://...)
进行 mysql_native_password
身份验证?
如有任何建议,我们将不胜感激...
您可以使用 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')