使用ssh工具链接mysql_mycli辅助工具-更方便得通过ssh tunnel连接线上MySQL

本文介绍了如何通过mycli助手工具结合sshtunnel实现安全的远程服务器端口转发,以访问受限制的线上生产环境MySQL数据库。首先,确保安装了mycli和sshtunnel依赖。配置文件包括远程服务器SSH登录信息和MySQL数据库连接详情。运行mycli-helper.py脚本并指定配置文件,即可实现本地到远程MySQL的连接。示例展示了如何连接和操作MySQL数据库。
摘要由CSDN通过智能技术生成

mycli辅助工具

用途

更方便的通过ssh tunnel远程服务器端口转发来使用MySQL命令行客户端mycli连接远程MySQL。

网络拓扑

a97b0a25b597612040eb156ee4eff18d.png

通常我们无法连接线上生产环境数据库,需要一台服务器作为中转,我们可以登录这台中转服务器,通过中转服务器访问MySQL

环境依赖

安装依赖

pip install mycli

pip install sshtunnel

ps: 推荐你使用pyenv或者其他python依赖管理工具来管理你的依赖

配置文件

[user-mysql]

desc=用户数据库

remote_host=192.168.1.106

remote_port=22

remote_username=fengjx

remote_password=

remote_pkey=~/.ssh/id_rsa

remote_pkey_password=

mysql_host=192.168.1.106

mysql_port=3306

mysql_user=root

mysql_password=1234

remote 是ssh登录代理端口转发的服务器配置,remote_password和remote_pkey、remote_pkey_password两个可以按实际情况选择使用密码登录还是秘钥登录。

mysql 是远程MySQL登录配置

使用方法

只有一个可选参数,-c 指定配置文件路径,如果没有指定则会使用当前目录下的mycli.ini配置文件。

python mycli-helper.py -h

usage: mycli helper [-h] [-c CONFIG]

optional arguments:

-h, --help show this help message and exit

-c CONFIG, --config CONFIG

配置文件,默认当前目录下的 mycli.ini

示例

python mycli-helper.py -c mycli.ini

加载配置: mycli.ini

情输入连接的MySQL实例编号

[0] - user-mysql, 用户数据库

[1] - order-mysql, 订单数据库

1

connect to order-mysql, bind local port 64069

mycli mysql://root:1234@localhost:64069

mysql 5.7.28

mycli 1.20.1

Chat: https://gitter.im/dbcli/mycli

Mail: https://groups.google.com/forum/#!forum/mycli-users

Home: http://mycli.net

Thanks to the contributor - Frederic Aoustin

mysql root@localhost:(none)>

mysql root@localhost:(none)> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mydb |

| mysql |

| performance_schema |

| sys |

| test |

+--------------------+

6 rows in set

Time: 0.026s

mysql root@localhost:(none)> use mydb;

You are now connected to database "mydb" as user "root"

Time: 0.004s

mysql root@localhost:mydb> show tables;

+----------------+

| Tables_in_mydb |

+----------------+

| t1 |

+----------------+

1 row in set

Time: 0.050s

mysql root@localhost:mydb>

mysql root@localhost:mydb> insert into t1(id, c) values (1, 1024);

Query OK, 1 row affected

Time: 0.013s

mysql root@localhost:mydb> select * from t1;

+----+------+

| id | c |

+----+------+

| 1 | 1024 |

+----+------+

1 row in set

Time: 0.033s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值