Python连接服务器数据库
python连接数据库倘若只是单纯的连接本地虚拟机或是主机上的数据库的话,只需要利用pymysql模块访问目标IP即可,因为此时数据库是处于同个网段的。
但是当连接购买的服务器的时候,则需要通过ssh通道来连接。此时我们需要利用sshtunnel模块来连接服务器,然后再通过pymysql来连接数据库。
安装sshtunnel
pip install sshtunnel
导入sshtunnel模块的SSHTunnelForwarder
from sshtunnel import SSHTunnelForwarder
声明配置变量
- ssh_host:服务器的公网IP,字符串
- ssh_port:服务器的端口号,一般为22,数字
- ssh_user:服务器的名字,字符串
- ssh_passwor:服务器登录密码,字符串
- mysql_host:mysql服务器ip,固定填 ‘localhost’ 或 ‘127.0.0.1’,字符串
- mysql_port:mysql的端口,一般为3306,数字
- mysql_user:mysql数据库用户名,例root,字符串
- mysql_password:mysql数据库的密码,字符串
- mysql_db:连接的目标数据库名,字符串
建立ssh隧道
- 利用已声明好的变量,建立ssh隧道连接
with SSHTunnelForwarder(
(ssh_host, ssh_port),
ssh_username=ssh_user,
ssh_password=ssh_password,
remote_bind_address=(mysql_host, mysql_port