今天跟大家分享两种场景的python连接MySQL方法;
场景一:连接远程MySQL
首先,安装pymysql;在命令行执行pip install pymysql指令。
然后,导入pymysql;
import pymysql
具体实现步骤的代码及注释如下:
#创建远程数据库连接 conn=pymysql.connect( user=\'数据库用户名\',#数据库用户名 host=\'数据库IP\',#数据库IP port=3306,#数据库端口 password=\'数据库密码\',#数据库密码 database=\'数据库名称\',#数据库名称 charset=\'utf8\')#字符集 cur=conn.cursor()#创建游标实例 sql="select XX from database.table where key= \'value\';"#初始化查询语句 cur.execute(sql)#执行查询语句,移动游标到相应的位置 valueXX=cur.fetchall()#取出数据 cur.close()#关闭游标 conn.close()#关闭数据库连接
|
情景二:通过跳板机(ssh通道)连接MySQL
安装pymysql和sshtunnel;
然后,分别导入pymysql和sshtunnel;
import pymysql
from sshtunnel import SSHTunnelForwarder
具体实现步骤的代码及注释如下:
with SSHTunnelForwarder( (\'SSH通道IP\',22222),#SSH通道IP ssh_username="用户名",#运维提供的用户名,非数据库名 ssh_password="密码",#密码 remote_bind_address=(\'跳板机域名\',3306)) as server:#跳板机域名
conn = pymysql.connect(user=\'用户名\', host=\'127.0.0.1\', port=server.local_bind_port, password=\'密码\', database=\'数据库名\', charset=\'utf8\') cur = conn.cursor() sql = "select XX from 数据库名.table_name where key = \'XXXX\';" cur.execute(sql) value= cur.fetchall()#取数据库数据 cur.close() conn.close()
|