背景

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

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

出现的问题

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

已经采取的解决办法

我已经采取的解决办法:

  • 查看服务器3306端口是否开放
  • 查看数据库服务器的数据库是否在运行
  • 授权允许远程连接的用户
use mysql;
grant all privileges on *.* to root@'%' identified by '密码';
flush privileges;

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

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

最后采取的解决办法

然后又看了下3306端口使用情况:
在这里插入图片描述

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

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

问题解决~&总结

  • 想让mysql 服务器可以被外部任意IP远程连接的方式:
  1. 授权允许远程连接的用户

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

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