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

我该怎么做呢?


当前回答

这在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)以使更改生效。

其他回答

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

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

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

如果你从brew安装MySQL,默认情况下它只监听本地接口。要解决这个问题,您需要编辑/usr/local/etc/my.cnf并将绑定地址从127.0.0.1更改为*。

然后运行brew services重启mysql。

MySQL 8不再允许您使用GRANT命令创建用户。您需要首先创建用户。

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

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