使用mysql.connector建立初始连接后,如何切换至用户指定的MySQL数据库?
问题
我正在使用Python的mysql.connector连接MySQL实例。在建立初始连接后,我希望切换至用户输入的目标数据库。以下是我的实现代码:
... import mysql.connector as sqlcon connection = sqlcon.connect( user=conn_info['user'], password=conn_info['password'], host=conn_info['host'], auth_plugin='mysql_native_password') #conn_info is a dictionary holding the values cursor = connection.cursor() db_name = input("Enter db name") ...
请问是否可以在这一步之后连接到指定的db_name?
解决方案
当然可以,有两种常用方式实现:
方式一:执行SQL切换数据库
利用已创建的游标执行MySQL的USE语句,就能直接切换到目标数据库:
db_name = input("Enter db name") # 执行切换命令,用反引号包裹数据库名避免特殊字符报错 cursor.execute(f"USE `{db_name}`")
这种方式无需重新建立连接,效率更高。
方式二:重新建立带指定数据库的连接
如果需要全新的连接上下文,可以关闭现有连接后,重新传入database参数创建连接:
db_name = input("Enter db name") # 关闭原有连接 connection.close() # 重新连接并指定目标数据库 connection = sqlcon.connect( user=conn_info['user'], password=conn_info['password'], host=conn_info['host'], database=db_name, auth_plugin='mysql_native_password' ) cursor = connection.cursor()
两种方式都能满足需求,可根据实际场景选择。
内容的提问来源于stack exchange,提问作者ag2byte
相关产品推荐
相关产品推荐

