虚拟机无法连接本地数据库,Java::ComMysqlJdbcExceptionsJdbc4::CommunicationsException
最近在搭建logstash,从数据库中同步数据到elastic search中报错Java::ComMysqlJdbcExceptionsJdbc4::CommunicationsException,大概是连接数据失败
原因一:网络不通
检测网络是否连通,可以通过简单的ping IP 进行查看
这里看到能够ping通,说明网络没有问题。
原因二:没有为远程登录用户开放权限
一般是由于本地安装MySQL时为远程登录用户开通权限
1.首先我们进行本地连接数据库MySQL
2.为远程登录用户添加权限:为%任意host上的root用户开启访问权限,第二个root是密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> flush privileges;
这里对该语句进行详细的说明:
1所指的*号表示本地数据库的数据库名 *.*号表示而本地的所有数据库都授权,如test.*表示授权test数据库里面的所有表
2所指的是root这个用户,4表示root对应的密码名
3表示远程主机IP,这里的%表示正常的IP地址都可以,
3.查看权限是否添加成功:
mysql> show databases;
mysql> use mysql;
mysql> select host,user from user;
原因三:没有开放3306端口
我们知道连接mysql数据库默认使用3306端口,如果该端口没有开放,也是无法访问的。
mysql> show variables like '%port%';
如图看到3306端口也是开通了的,这样就没有问题了。