This topic created in 3290 days ago, the information mentioned may be changed or developed.
我有多台 MySQL,只有一台云服务器( Linux )能访问他们。因为经常要导数据什么,在云服务器上命令操作很不方便,于是就想用这台云服务器做个 proxy,能让外网访问(为了安全,这台云服务器访问也做了 IP 限制的)
现在不知道这个 proxy 怎么做?
端口转发可以吗?试了没成功。
找了下好像 mysql-proxy 可以实现,但是好像这个是不是只能 proxy 一个地址啊,能同时 proxy 多台 MySQL 吗?
Supplement 1 · Jun 14, 2017
想多了。
按照 5L 的做法,什么都不用做,直接就可以连 😄
18 replies • 2017-06-15 00:05:49 +08:00
 |
|
1
pengdu Jun 14, 2017
不知道 phpMyAdmin 能不能满足你的需求
|
 |
|
3
strawhat7 Jun 14, 2017 1
你可以在这台 Linux 服务器上用 iptables 做端口转发
|
 |
|
4
234747005 Jun 14, 2017 1
用 haproxy 做 tcp 端口代理,在自己的电脑用 Navicat 连接 haproxy 代理的端口。
|
 |
|
5
cnwtex Jun 14, 2017 2
navicat 新建链接的时候,后面有个 ssh 选项,勾上隧道,输自己的用户名密码
|
 |
|
6
raysonx Jun 14, 2017 2
将 MySQL 服务开放到公网是作死的节奏。不要折腾奇怪的软件,建议用 SSH 隧道来代理,安全、方便。
1.先在本地开 SSH 隧道: ssh -L <本地端口>:<数据库主机名 /IP>:<数据库端口号> <SSH 用户名>@<云服务器主机名> 2. 本地连接代理: mysql -h localhost -P <本地端口>
|
 |
|
7
Light3 Jun 14, 2017 2
phpMyAdmin 自己记得设 只有你这个 ip 能登.. 要不然 分分钟跑路..
|
 |
|
9
johnlui Jun 14, 2017 1
最简单的方法:搜 Nginx TCP proxy
|
 |
|
10
johnlui Jun 14, 2017 1
我以前也用过 mysql-proxy 这类的专用代理,但是最后想了想数据库是基于 TCP 提供服务的,直接 Nginx 做 TCP 反向代理不就行了,试了下,还真好用!一共也没几行代码,也支持回源地址用域名,mysql-proxy 连域名都不支持你敢信,用阿里云的都懂。
|
 |
|
11
imherer Jun 14, 2017
@ raysonx 目前只有那台云服务器能访问数据,用 SSH 隧道后可以直接在我本地访问数据库吗?
|
 |
|
12
40huo Jun 14, 2017 1
@ imherer #11 可以,MySQL 只开 localhost 都可以用 SSH 访问。
|
 |
|
13
sparkssssssss Jun 14, 2017 via iPhone 1
ssh 做端口映射到本机,然后本地就可以直接访问了啊
|
 |
|
14
artandlol Jun 14, 2017 via Android 1
不需要 root 密码的情况下用 iptables 只允许特定 ip 访问
|
 |
|
15
nicevar Jun 14, 2017
确实不要开启公网访问,每天遭受的尝试攻击超过你的想象
|
 |
|
18
timothyye Jun 15, 2017
用 ssh 转发就行了,方法参考 6 楼
|