好吧,我已经search谷歌两天试图让这个工作。 以下是我迄今采取的步骤:
我有nmap'd使用内部IP上的以下命令,并得到以下结果:
nmap -PN -p 3306 192.168.1.73
启动Nmap 5.21( http://nmap.org )在2011-02-19 13:41 PST Nmap扫描报告为computername-System-Name(192.168.1.73)主机已启动(延迟0.00064s)。 PORT STATE SERVICE 3306 / tcp打开mysql
- 组策略重新启动时重置?
- 我如何从互联网访问私人IP的Windows XP远程桌面?
- 远程打开服务器上的程序?
- Linux相当于RDP和TS网关
- Windows RemoteApp部署软件更新,有没有更好的方法?
Nmap完成:1个IP地址(1个主机)在0.23秒内扫描
我有nmap'd内部IP使用以下命令,并得到下面的结果(我有隐藏IP的原因显而易见):
nmap -PN -p 3306 xxx.xxx.xx.xxx
启动Nmap 5.21( http://nmap.org )在2011-02-19 13:42 PST Nmap扫描报告HOSTNAME(xxx.xxx.xx.xxx)主机启动(延迟0.00056s)。 PORT STATE SERVICE 3306 / tcpclosuresmysql
Nmap完成:1个IP地址(1主机up)在0.21秒扫描
我完全陷在这里,需要一些帮助。 我已经尝试了月球下的所有东西,仍然无法从远程外部IP地址连接。 任何帮助非常感谢,我需要做任何事情来帮助find问题让我知道,我会在这里发布结果。
检查/etc/mysql/my.cnf的bind-address ,因为在基于Debian的系统上默认设置为127.0.0.1 。 如果你想能够从本地主机之外的另一台机器连接到它,你将需要改变这一点,并重新启动mysql来这样做。
你可以通过以root身份运行netstat -plunta |grep :3306来确认这种情况,你可能会看到它只能绑定到127.0.0.1,而当你修改my.cnf并重新启动时,情况就不会如此了。
有趣的是,这对我来说是这样的:我做了这个命令,上面有人build议:'netstat -plunta | grep:3306',然后我注意到apache和ssh都运行在外部和本地地址0.0.0.0 ,而mysql则拥有127.0.0.1的本地地址。 所以我改变它0.0.0.0像其余的,并结合授予特权在MySQL到其他主机,它的工作!
所以设置为绑定地址时,0.0.0.0作为一种通配符。
我不想将MySQL暴露给互联网。 我会从外面暴露端口22和ssh。 通过SSH隧道将本地端口转发到远程服务器上的端口3306,如下面的第一条命令所示。 然后通过连接到您绑定到本地的端口连接到端口3306上的远程服务器,如第二个命令中所示。
例如。:
ssh -L 3307:0:3306 mysql@remotehost
(其他shell 🙂
mysql -P 3307 -h localhost -u user -p
请注意,只有第一个shell是打开的,你才能连接和使用第二个shell中的MySQL cli。 调查SSH保持活动可能是必要的。 请注意,您也可以使用Putty在Windows计算机上使用这种types的SSH隧道。
你有没有尝试编辑文件
/etc/mysql/my.cnf
确保线跳过networking评论(或删除线),并添加以下行
user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = EXTERNAL(!!) IP SERVER # skip-networking
另外,确保用户有权访问数据库
mysql> CREATE DATABASE test; mysql> GRANT ALL ON test.* TO user@'IP' IDENTIFIED BY 'supersecretpassword';
不pipe你说什么,“我已经转发了”,它看起来真的不像你。
你可以使用netstat连接吗?
watch -n1 "netstat -an|grep 3306"
我不知道还有什么build议。 所有迹象表明该港口已closures。