这里与连接本地mysql的区别在于,需要采用Python里面的sshtunnel模板中的SSHTunnelForwarder函数,里面带上云服务器登录信息参数,开启服务后,pymysql.connect()就可以与云上mysql联通、传输数据了
具体代码如下:
from sshtunnel import SSHTunnelForwarder
import pymysql
#通过SSH连接云服务器
server=SSHTunnelForwarder(
ssh_address_or_host=(IP,port), #云服务器地址IP和端口port
ssh_username=admin, #云服务器登录账号admin
ssh_password=password, #云服务器登录密码password
remote_bind_address=('localhost',3306) #数据库服务地址ip,一般为localhost和端口port,一般为3306
)
#云服务器开启
server.start()
#云服务器上mysql数据库连接
con=pymysql.connect(host='127.0.0.1', #此处必须是是127.0.0.1
port=server.local_bind_port,
user=admin, #mysql的登录账号admin
password=pwd, #mysql的登录密码pwd
db=dbtable, #mysql中要访问的数据表
charset='utf8') #表的字符集
#创建游标
cur=con.cursor()
#执行sql语句
cur.execute("SELECT * from datable limit 10")
#读取数据
data=cur.fetchall()
#打印数据
for item in data:
print(item)
#游标、连接关闭
cur.close()
con.close()
#云服务器关闭
server.close()