我已经在我的本地机器上安装了MySQL Community Edition 5.5,我想允许远程连接,这样我就可以从外部源连接。

我该怎么做呢?


当前回答

如果您的MySQL服务器进程正在监听127.0.0.1或::1,那么您将无法远程连接。如果您在/etc/my.cnf中设置了绑定地址,这可能是问题的根源。

您还必须为非本地主机用户添加特权。

其他回答

对于需要它的人,检查防火墙端口3306是否也打开了,如果您的防火墙服务正在运行。

在我的情况下,我试图连接到一个远程mysql服务器在cent操作系统。在经历了许多解决方案(授予所有特权,删除ip绑定,启用网络)后,问题仍然没有得到解决。

事实证明,在寻找各种解决方案时,我遇到了iptables,这让我意识到mysql端口3306不接受连接。

下面是关于我如何检查和解决这个问题的一个小说明。

检查端口是否接受连接:

telnet (mysql server ip) [portNo]

添加ip表规则,允许端口上的连接:

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

不建议在生产环境中这样做,但如果您的iptables没有正确配置,添加规则可能仍然不能解决问题。在这种情况下,应该做以下工作:

service iptables stop

希望这能有所帮助。

如果mysqld有一个绑定地址设置为环回/本地地址(例如127.0.0.1),服务器将无法从远程主机到达,因为环回接口无法从任何远程主机到达。

将此选项设置为0.0.0.0(::对于IPv4+6)以接受来自任何主机的连接,如果您希望只允许在一个接口上连接,则将该选项设置为另一个外部可达地址。

有时需要在Windows上使用PC名

第一步)把mysql的配置文件:

mysqld.cnf SET bind-address= 0.0.0.0

(让recbe连接tcp/ip)

第二步)让用户在mysql,表用户,与pc在windows属性的名称,而不是ip

请按照下面提到的步骤来设置MySQL用户的通配符远程访问。

(1) Open cmd. (2) navigate to path C:\Program Files\MySQL\MySQL Server 5.X\bin and run this command. mysql -u root -p (3) Enter the root password. (4) Execute the following command to provide the permission. GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'PASSWORD'; USERNAME: Username you wish to connect to MySQL server. IP: Public IP address from where you wish to allow access to MySQL server. PASSWORD: Password of the username used. IP can be replaced with % to allow user to connect from any IP address. (5) Flush the previleges by following command and exit. FLUSH PRIVILEGES; exit; or \q