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

我该怎么做呢?


当前回答

只是F.Y.I 我为这个问题苦恼了好几个小时。最后,我打电话给我的主机提供商,发现在我使用云服务器的情况下,在1and1的控制面板中,他们有一个二级防火墙,你必须克隆并添加端口3306。一加进去我就直接进去了。

其他回答

有时需要在Windows上使用PC名

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

mysqld.cnf SET bind-address= 0.0.0.0

(让recbe连接tcp/ip)

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

启用远程根访问可能是危险的。如果您要设置具有更严格权限的用户帐户,则更可取。以下三个步骤可以做到这一点。

Ensure that the line starting with bind-address ... is at least commented out in your my.ini or my.cnf file. If it doesn't exist, move on. You can find this file in C:\ProgramData\MySQL\MySQL Server 8.0 on Windows. Afterwards, check that the user account you are establishing the connection with does not have localhost in the Limit to Hosts Matching field. While it isn't recommended, you can instead put % in that field for testing purposes. You can do this by opening a local connection to the server with MySQL Workbench, then going to Server>Users and Privileges from the menu bar and finding the user account you want to connect with.

“限制主机匹配”字段是不允许您连接非本地。也就是说,它将接受的连接限制为一个IP地址模式。理想情况下,您应该从静态IP地址或子网访问MySQL服务器,这样您就可以尽可能地限制。

显然,您的防火墙应该允许MySQL服务器应用程序通过您想要的端口进行通信。您和服务器之间的物理网络设备应该允许在您想要连接的端口上进行通信。(通常端口为3306)

这篇如何在局域网上安装MySQL服务器的博客将有助于从头开始安装MySQL

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

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

这在MySQL上是默认允许的。

默认情况下禁用的是远程根访问。如果你想启用它,在本地运行这个SQL命令:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

然后找到下面的行,并在my.cnf文件中注释它,该文件通常位于Unix/OSX系统的/etc/mysql/my.cnf中。在某些情况下,文件的位置是/etc/mysql/mysql.conf.d/mysqld.cnf)。

如果是Windows系统,你可以在MySQL安装目录中找到它,通常是C:\Program Files\MySQL\MySQL Server 5.5\,文件名是my.ini。

改变行

 bind-address = 127.0.0.1

to

 #bind-address = 127.0.0.1

并重新启动MySQL服务器(Unix/OSX和Windows)以使更改生效。