mysql登录方式有两种,一种是本机登录,一种是远程登录。这两种登录方式在mysql数据库的user表中都有体现。

由于我们不可能总是本地登录,因此需要设置远程登陆。但是mysql默认不支持远程登陆,所以需要设置一波。

1. 登录数据库。

2. 切换到mysql数据库。

3. 查看主机和用户对应情况,其实就是查看mysql数据库的user表中的部分信息。

 

4. 此时,针对远程用户,我们有三种授权方式: 
1) 授权法(推荐使用)
* 授权给所有ip
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

* 授权给某ip
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'your ip' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

2) 改表法(不推荐)
mysql>update user set host = '%' where user = 'root';
mysql>FLUSH PRIVILEGES;
此方法不推荐的原因是,它会把数据库表全部改掉,如果你从本地登录时,看到的数据库结构和远程登陆看到的结构不一样,不利于本地修改。非常不推荐这种玩法!!!

3)修改mysql配置文件
找到mysql.cnf
把bind-address = 127.0.0.1 前面加上 #
即 #bind-address = 127.0.0.1
不过,就rpm安装方式来说,我没找到bind-address这一项;如果有这一项的话,将其修改为bind-address=0.0.0.0也可以实现远程登陆,不过要重启mysql服务。

还有一点,就是你要保证防火墙不会挡住mysql监听端口(感觉是废话,但是实际上经常就是防火墙问题o_o)

systemctl stop firewalld

我的电脑照上述方法配置后,还是无法连接,关闭防火墙后就可以连接了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐