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

我该怎么做呢?


当前回答

在完成以上所有操作后,我仍然无法以根用户远程登录,但是telnet到3306端口确认MySQL正在接受连接。

我开始查看MySQL中的用户,并注意到有多个具有不同密码的根用户。

select user, host, password from mysql.user;

所以在MySQL中,我再次为root设置了所有密码,我最终可以以root身份远程登录。

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

其他回答

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

然后运行brew services重启mysql。

在完成以上所有操作后,我仍然无法以根用户远程登录,但是telnet到3306端口确认MySQL正在接受连接。

我开始查看MySQL中的用户,并注意到有多个具有不同密码的根用户。

select user, host, password from mysql.user;

所以在MySQL中,我再次为root设置了所有密码,我最终可以以root身份远程登录。

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

远程登录的所有流程。默认关闭远程登录。你需要手动打开所有ip..来访问所有ip

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

特定的Ip

GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_desire_ip' IDENTIFIED BY 'password';

然后

flush privileges;

您可以检查您的用户主机和密码

SELECT host,user,authentication_string FROM mysql.user;

现在你的责任就是改变这一切

bind-address = 127.0.0.1

你可以找到这个

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

如果你在那里找不到这个,那就试试这个

sudo nano /etc/mysql/my.cnf

在此评论

#bind-address = 127.0.0.1

然后重新启动Mysql

sudo service mysql restart

现在享受远程登录

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

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

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