我是在一台服务器安装了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远程连接的方式:
- 授权允许远程连接的用户
use mysql;
grant all privileges on *.* to root@'%' identified by '密码';
flush privileges;
- 允许mysql数据库被远程连接
vim /etc/mysql/mysql.conf.d/mysqld.cnf
把这个注释掉 #bind-address = 127.0.0.1