执行命令:
mysql> use mysql;
mysql> select host,user from user;
查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况:
mysql-root-state
是的话,就要修改它的host为%,表示任意IP地址都可以登录。
mysql> update user set host = '%' where user = 'root';
执行完后可能提示error。再mysql> select host,user from user;查看下吧。
root对应的host成了%,表示可以任意IP地址登录了。
mysql-change-root-state
mysql> flush privileges;
把缓存flush掉,在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表。
MySQL默认在本地localhost登录root用户,然而远程连接却会报错(root@X.X.X.X acess denied)
这里就需要进行配置允许远程连接
方式一:
进入mysql: mysql -uroot -p
运行mysql: use mysql;
开启远程访问权限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'amigo'
强制刷新权限: flush privileges;
关闭mysql: exit;
方式二:
进入mysql: mysql -uroot -p
运行mysql: use mysql;
查看用户表: SELECT `Host`,`User` FROM user;
更新用户表: UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
强制刷新权限: flush privileges;
关闭mysql: exit;
开启关闭服务器防火墙:
查看防火墙是否开启(如果显示running,则防火墙为开启状态):
firewall-cmd --state
关闭防火墙:
systemctl stop firewalld.service
开启防火墙:
systemctl start firewalld.service
关闭开机自启动:
systemctl disable firewalld.service
开启开机自启动:
systemctl enable firewalld.service