[华为云服务器]远程连接数据库出现连接拒绝的解决办法

举报
windows 发表于 2020/02/20 16:47:20 2020/02/20
【摘要】 背景新买了个服务器,搭一些分布式项目的积木玩玩~~我是在一台服务器安装了mysql 5.7只做数据库服务器又买了俩服务器当作应用服务器,问题就是应用服务器访问不了数据库出现的问题123[root@iZ2zehcpqb5ti81m38b7qzZ miaosha]# telnet 数据库服务器地址 3306Trying 数据库服务器地址...telnet: connect to address ...

背景

新买了个服务器,搭一些分布式项目的积木玩玩~~

我是在一台服务器安装了mysql 5.7只做数据库服务器
又买了俩服务器当作应用服务器,问题就是应用服务器访问不了数据库

出现的问题

1
2
3
[root@iZ2zehcpqb5ti81m38b7qzZ miaosha]# telnet 数据库服务器地址 3306
Trying 数据库服务器地址...
telnet: connect to address 数据库服务器地址: Connection refused

已经采取的解决办法

我已经采取的解决办法:

  • 查看服务器3306端口是否开放

  • 查看数据库服务器的数据库是否在运行

  • 授权允许远程连接的用户

1
2
3
use mysql;
grant all privileges on *.* to root@'%' identified by '密码';
flush privileges;

.:第一个代表数据库名;第二个代表表名。这里的意思是所有数据库里的所有表都授权给用户;
root:授予root账号;
%:表示授权的用户IP,这里代表任意的IP地址都能访问MySQL;
密码:数据库账号对应的密码;
flush privileges:刷新权限信息。

做完了上面的还是不好使,心态崩了

最后采取的解决办法

然后又看了下3306端口使用情况:
image.png

发现都被127.0.0.1 绑定住,此时我感觉发现了问题原因,进行下面操作

1
2
vim /etc/mysql/mysql.conf.d/mysqld.cnf
把这个注释掉 #bind-address = 127.0.0.1

问题解决~&总结

  • 想让mysql 服务器可以被外部任意IP远程连接的方式:

  1. 授权允许远程连接的用户

    1
    2
    3
    use mysql;
    grant all privileges on *.* to root@'%' identified by '密码';
    flush privileges;
  2. 允许MySQL数据库被远程连接

1
2
vim /etc/mysql/mysql.conf.d/mysqld.cnf
把这个注释掉 #bind-address = 127.0.0.1


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。