现象:Navicat通过SSH能连接远程mysql数据库,SSH也能连接。安全组已对端口开放,远程服务器上MySQL数据库已对root授权为%,远程服务器防火墙未开启。问题:telnet  远程IP  3306  无法连接;JDBC无法连接;navicat直接连接无法连接,本地终端通过mysql -uroot -h远程IP  -p无法连接。

产生问题原因:3306端口未开放

解决方法:1,查看3306端口是否开放

netstat -an|grep 3306

或者  netstat -nltp

查看local Address是否为127.0.0.1:3306   是的话表示端口未开启

二、修改访问权限

进入目录“etc/mysql/mysql.conf.d/”,如下图所示:
在这个目录下,有一个配置文件“mysqld.cnf”
打开这个配置文件:

sudo vim mysqld.cnf

文件打开后有一大段注释说明,不用去管它,直接看到下图中的部分:

注意上图中的第一行红色的注释:

“By default we only accept connections from localhost”,这几句话的意思是说“在默认情况下我们只允许本地服务访问MySQL”,所以我们需要注释掉下方那条配置,直接在它前面加上一个井号即可:

# bind-address = 127.0.0.1

如下图所是,这条配置也变成了注释:

关于阿里云上MySQL数据库不能连接(Ubuntu系统)
拓展一下思路,如果我们出于安全考虑,希望限制只有某台应用服务器可以访问MySQL的话,那么其实就需要调整这条配置项就可以了。
三、修改端口号

还是这个配置文件,看到这个配置文件的中间部分的配置项:


我们需要在其中增加一条端口配置:

port = 3306

加完以后整个配置文件看起来是这样的:

修改完文件之后记得保存。
 

相关文章:

  • 2021-11-19
  • 2021-11-29
  • 2021-12-07
  • 2021-08-09
  • 2021-08-16
  • 2022-12-23
猜你喜欢
  • 2021-10-22
  • 2022-01-31
  • 2021-11-14
  • 2021-08-25
  • 2021-08-07
  • 2022-12-23
  • 2021-11-19
相关资源
相似解决方案