您没有提到操作系统,但这适用于您可能需要调整命令的任何操作系统。要将 MySQL 暴露给 localhost 以外的任何内容,您必须在 my.cnf 中取消注释以下行并将其分配给您的计算机 IP 地址而不是环回
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Or add a bind-address = 0.0.0.0 if you don't want to specify the IP
然后使用新的 my.cnf 条目停止并重新启动 MySQL。如果您使用的是 Linux,请转到终端并输入以下命令。
lsof -i -P | grep :3306
这应该会在您的 xxx 中返回类似这样的实际 IP
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
如果上述语句正确返回,您将能够接受远程用户。但是,要让远程用户以正确的权限连接,您需要在 localhost 和 '%' 中创建该用户。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
然后
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
如果您没有像上面那样创建相同的用户,当您在本地登录时,您可能会继承基本 localhost 权限并遇到访问问题。如果您想限制 myuser 的访问权限,则需要在此处阅读 GRANT 语句语法。
如果在此之后仍然存在连接问题,则可能与防火墙或 IPTABLES 相关。正确定义访问权限和用户后,请返回并发布发生的事情。