MySQL 公网访问问题

2017-06-14 17:46:38 +08:00
 imherer
我有多台 MySQL,只有一台云服务器( Linux )能访问他们。因为经常要导数据什么,在云服务器上命令操作很不方便,于是就想用这台云服务器做个 proxy,能让外网访问(为了安全,这台云服务器访问也做了 IP 限制的)

现在不知道这个 proxy 怎么做?
端口转发可以吗?试了没成功。

找了下好像 mysql-proxy 可以实现,但是好像这个是不是只能 proxy 一个地址啊,能同时 proxy 多台 MySQL 吗?
2843 次点击
所在节点    程序员
18 条回复
pengdu
2017-06-14 17:57:36 +08:00
不知道 phpMyAdmin 能不能满足你的需求
imherer
2017-06-14 18:00:20 +08:00
@pengdu 😳 我怎么把这个给忘了。 这个应该可以。 我试试
strawhat7
2017-06-14 18:07:08 +08:00
你可以在这台 Linux 服务器上用 iptables 做端口转发
234747005
2017-06-14 18:11:06 +08:00
用 haproxy 做 tcp 端口代理,在自己的电脑用 Navicat 连接 haproxy 代理的端口。
cnwtex
2017-06-14 18:12:00 +08:00
navicat 新建链接的时候,后面有个 ssh 选项,勾上隧道,输自己的用户名密码
raysonx
2017-06-14 18:12:56 +08:00
将 MySQL 服务开放到公网是作死的节奏。不要折腾奇怪的软件,建议用 SSH 隧道来代理,安全、方便。

1.先在本地开 SSH 隧道:
ssh -L <本地端口>:<数据库主机名 /IP>:<数据库端口号> <SSH 用户名>@<云服务器主机名>
2. 本地连接代理:
mysql -h localhost -P <本地端口>
Light3
2017-06-14 18:20:27 +08:00
phpMyAdmin 自己记得设 只有你这个 ip 能登.. 要不然 分分钟跑路..
lilydjwg
2017-06-14 18:25:22 +08:00
ssh 端口转发啊。
johnlui
2017-06-14 18:27:29 +08:00
最简单的方法:搜 Nginx TCP proxy
johnlui
2017-06-14 18:30:14 +08:00
我以前也用过 mysql-proxy 这类的专用代理,但是最后想了想数据库是基于 TCP 提供服务的,直接 Nginx 做 TCP 反向代理不就行了,试了下,还真好用!一共也没几行代码,也支持回源地址用域名,mysql-proxy 连域名都不支持你敢信,用阿里云的都懂。
imherer
2017-06-14 18:30:59 +08:00
@raysonx 目前只有那台云服务器能访问数据,用 SSH 隧道后可以直接在我本地访问数据库吗?
40huo
2017-06-14 18:39:58 +08:00
@imherer #11 可以,MySQL 只开 localhost 都可以用 SSH 访问。
coolloves
2017-06-14 19:14:47 +08:00
ssh 做端口映射到本机,然后本地就可以直接访问了啊
artandlol
2017-06-14 19:17:02 +08:00
不需要 root 密码的情况下用 iptables 只允许特定 ip 访问
nicevar
2017-06-14 19:26:09 +08:00
确实不要开启公网访问,每天遭受的尝试攻击超过你的想象
imherer
2017-06-14 19:27:01 +08:00
@nicevar 做了访问 IP 限制的,应该还好吧?
nicevar
2017-06-14 19:41:04 +08:00
@imherer 嗯,限制 ip 倒是没有问题
timothyye
2017-06-15 00:05:49 +08:00
用 ssh 转发就行了,方法参考 6 楼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX