新安装的mysql只可以本机连接,但是远程连接就会报
not allowed to connect to this mysql server
例如:

按如下步骤进行操作
方法一
更改mysql数据库user表的host列,把localhost改为%
[root@localhost ~]# mysql -u root -p123*** mysql> use mysql; mysql> select host,user from user; mysql> update user set host = '%' where user = 'root'; mysql> flush privileges;
方法二(推荐)
mysql5.7及以下版本
添加一个新的授权
mysql> grant all privileges on *.* to 'root'@'%' identified by '123***' with grant option;
mysql8.0及以上版本(mysql 8.0+版本中将用户创建和权限授予分成了两个独立的操作)
- 首先创建用户(如果不存在)并设置密码:
create user 'root'@'%' identified by 'root123';
- 然后授予权限:
grant all privileges on *.* to 'root'@'%' with grant option;
- 最后刷新权限:
flush privileges;
mysql> create user 'root'@'%' identified by 'root123'; query ok, 0 rows affected (0.03 sec) mysql> select host,user from user; +-----------+------------------+ | host | user | +-----------+------------------+ | % | root | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+------------------+ mysql> grant all privileges on *.* to 'root'@'%' with grant option; query ok, 0 rows affected (0.02 sec) mysql> flush privileges; query ok, 0 rows affected (0.01 sec)

服务器对外开放3306端口(注意:如果是阿里云服务器在服务器端命令行开放端口后还要到阿里云管理平台设置开放端口才有效)
# 开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 配置立即生效 firewall-cmd --reload # 查看是3306端口否已开放(返回yes表示端口开放成功,no表示端口未开放) firewall-cmd --query-port=3306/tcp yes
重新远程连接就可以了

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论