现在我有一个有MySQL的Ubuntu服务器。 我可以使用命令连接到它
mysql -u root -p (password)
我一直在网上找,找不到一个有效的解决scheme。 我想要做的就是能够从外面连接到它。 例如从我的家用电脑(我有MySQL文件,允许我连接到其他服务器)
mysql -h domainname.com -u username -p
但每次我尝试这个我总是得到相同的错误:
ERROR 2005 (HY000): Unknown MySQL server host 'domainName:3306' (11004)
我想我必须编辑my.conf文件,但我是新来的,并不是100%确定。
感谢您的高级帮助。
出于安全原因,在大多数Linux发行版中,默认情况下禁止TCP对mysql的访问。 要启用它,你必须编辑my.cnf文件(检入/etc/mysql/my.cnf或/etc/my.cnf )并删除skip-networking选项。 为了好的措施,你可以添加:
bind-address=192.168.XY <-- your eth0 address here
你也应该知道,MySQL用户限制是基于源主机的 。 以root身份从本地主机login与从myothercoolserver.mydomain.com以root身份loginmyothercoolserver.mydomain.com 。 请务必使用允许user@source访问正确表所需的GRANT选项。
不build议允许root用户从本地外部访问。
关于GRANT语句的更多信息在这里 。
根据我们在这个原始答案的评论中的长时间讨论,您可能想要尝试的其他一些想法:
tcpdump tcp port 3306这样的命令应该可以工作。 如果在尝试连接时看不到stream量,则可能是外部连接和服务器之间的iptables或硬件防火墙阻止了tcp / 3306。 service iptables stop (假设你已经将规则保存在由init脚本pipe理的地方),看看是否允许stream量。 如果是这样,请重新访问/etc/sysconfig/iptables.conf (或类似)中的iptables规则,或将它们发布到另一个问题中,并且有人应该能够指出什么阻止了stream量。 最安全的方法是将ssh隧道连接到你的mysql盒子,然后使用该隧道:
$ ssh [email protected] -L 3306:localhost:3306
把你的mysql客户端configuration成与localhost:3306交谈
麦肯定你绑定的MySQL服务器本地主机(127.0.0.1)