如何允许远程连接到mysql

我在本地机器上安装了MySQL社区版5.5,我想允许远程连接,这样我就可以从外部连接。

我怎样才能做到这一点?

对该问题的评论 (4)
解决办法

这在MySQL上是默认允许的。

默认情况下禁用的是远程`root'访问。 如果你想启用它,在本地运行这个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

改为

 #bind-address = 127.0.0.1

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

评论(27)

在做了以上所有操作后,我仍然无法以root远程登录,但Telnet到端口3306确认MySQL正在接受连接。

我开始查看MySQL中的用户,发现有[多个root用户][1],密码不同。

select user, host, password from mysql.user;

于是在MySQL中,我又[设置了root的所有密码][2],终于可以以root的身份远程登录了。

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;

[1]: https://serverfault.com/questions/235593/mysql-log-shows-3-root-users-2-without-passwords-why [2]: http://www.cyberciti.biz/faq/mysql-change-root-password/

评论(5)

根据我的经验,你可以在这个路径/etc/mysql/mysql.conf.d/mysqld.cnf下找到配置文件。

(我努力了一段时间才找到这个路径)

评论(2)

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

结果,在研究各种解决方案时,我遇到了iptables,它使我意识到mysql端口3306不接受连接。

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

  • 检查端口是否接受连接。
telnet(mysql服务器ip)[portNo]
评论(0)

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

(1)打开cmd. (2)打开cmd; 。 (2)导航到路径C:\Program Files\MySQL\MySQL Server 5.X/bin,并。

运行这个命令。 运行这个命令。

mysql -u root -p

(3) 输入根密码。

(3)输入根密码。 (3)输入根密码。 (4)执行以下命令,提供权限。 (4)执行以下命令提供权限。 (4) 执行下面的命令来提供权限。 *GRANT ALL PRIVILEGES ON*.\ TO 'USERNAME'@'IP' IDIFIED BY

'PASSWORD'; ;

USERNAME.你希望连接到MySQL服务器的用户名。 你希望连接到MySQL服务器的用户名。

USERNAME:你希望连接到MySQL服务器的用户名。 IP:你希望连接MySQL服务器的用户名。 IP:你希望允许访问MySQL服务器的公共IP地址。 公共IP地址:你希望允许访问MySQL的地方。 服务器。 服务器。

PASSWORD。 所用用户名的密码。

PASSWORD:使用的用户名的密码。 PASSWORD:使用的用户名的密码。 IP可以用%代替,允许用户从任何IP连接。 地址。 地址。 地址。 &gt。 (5)按以下命令刷新前置权限并退出。

(5)按以下命令刷新前置权限并退出。 (5)通过以下命令刷新前置权限并退出。 FLUSH PRIVILEGES;

exit;。 或 q

[![在此输入图像描述][1]][1]

[1]: https://i.stack.imgur.com/8bD4d.png

评论(2)

如果你从brew安装了MySQL,它确实默认只在本地接口上监听。 要解决这个问题,你需要编辑/usr/local/etc/my.cnf并将bind-address127.0.0.1改为*

然后运行brew services restart mysql

评论(2)

如果你的MySQL服务器进程只监听127.0.0.1或::1,那么你将无法远程连接。如果你在/etc/my.cnf中设置了bind-address,这可能是问题的根源。

你还必须为一个非 "localhost "的用户添加权限。

评论(2)

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

评论(2)

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

评论(0)

这篇博客[如何在局域网上设置MySQL服务器][1]对从头开始设置 "MySQL "很有帮助。

[1]: https://medium.com/@kasunsiyambalapitiya/how-to-setup-a-mysql-server-on-local-area-network-lan-c3c5012c7d6b

评论(2)

对于OS X的人来说,请注意bind-address参数通常是在launchd plist中设置的,而不是在my.ini文件中。 所以在我的例子中,我从/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist中删除了<string>--bind-address=127.0.0.1</string>

评论(1)

如果mysqld绑定地址设置为回环/本地地址(例如:127.0.0.1),则远程主机将无法访问该服务器,因为任何远程主机都无法访问回环接口。 127.0.0.1),服务器将无法从远程主机访问,因为从任何远程主机都无法访问回环接口。

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

来源

评论(0)

有时需要使用Windows上的计算机名称

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

mysqld.cnf SET bind-address= 0.0.0.0。

(让recibe连接通过tcp/ip)

第二步)在mysql中建立用户,表用户,用windows上PC的名字属性,不是ip

[![在此输入图像描述][1]][1]

[1]: https://i.stack.imgur.com/bXLab.png

评论(0)