当前位置: 代码网 > it编程>数据库>Mysql > mysql如何开放远程连接

mysql如何开放远程连接

2026年02月07日 Mysql 我要评论
新安装的mysql只可以本机连接,但是远程连接就会报not allowed to connect to this mysql server例如:按如下步骤进行操作方法一更改mysql数据库user表的

新安装的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+版本中将用户创建和权限授予分成了两个独立的操作)

  1. 首先创建用户(如果不存在)并设置密码:
create user 'root'@'%' identified by 'root123';
  1. 然后授予权限:
grant all privileges on *.* to 'root'@'%' with grant option;
  1. 最后刷新权限:
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

重新远程连接就可以了

总结

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com