用 ssh 方式连接 mysql 数据库

原理

SSH 连接数据库的原理是先用 ssh 连接数据库所在服务器,然后作为该服务器上的应用程序访问本地数据库。

Python

安装工具

1
$ pip install sshtunnel

建立连接

1
2
3
4
5
6
7
8
import sshtunnel

with sshtunnel.SSHTunnelForwarder(
('192.168.1.216', 22), # ssh端口22
ssh_password='实际密码',
ssh_username='实际用户名',
remote_bind_address=('127.0.0.1', 3306)) as server: # mysql端口3306
......

此时数据库服务地址被映射到本地端口:127.0.0.1:serve.local_port,数据库连接方法和之前一样,不同的是将 ip 设置成本机 ip:127.0.0.1,端口设置为 server.local_port 即可。