一、问题描述
在为 ActiveMQ 配置 JDBC 持久化机制之后,在虚拟机中开启 ActiveMQ 时,无法连接到本地主机中的数据库。查看 AcitveMQ 安装目录下的 data/activemq.log
日志文件,可以看到日志文件报错:
message from server: "Host '202.199.6.189' is not allowed to connect to this MySQL server"
具体报错如图所示:
如上图所示的错误日志已经说得比较明白了:数据库服务器拒绝连接。
二、问题解决
2.1 解决思路
首先,我是可以确定我的虚拟机是可以 Ping 通本地主机的。那么为什么无法连接到数据库呢?
通过查阅资料得知问题可能存在的地方:本地主机的 MySql 配置了不允许从远程访问登录。那么如果是这个问题的话,我们只需要在本地 MySql 中开启远程访问登录权限即可解决问题。
2.2 解决步骤
-
首先登录本地数据库
mysql -uroot -p
-
切换到
mysql
数据库use mysql;
-
查看
user
表 root 用户的host
列的权限配置select host from user where user='root';
user
表中的host
列的含义就是指定了允许 root 用户登录 MySql 所使用的 IP 地址。从上图可以看到,当前只有本机(localhost)才具有 MySql 的访问权限,下面我们修改一下权限就行了。 -
修改权限,使所有 IP 都可连接 MySql
update user set host = '%' where user='root';
-
刷新配置
flush privileges;
按照上面的配置一步步下来。至此,便可以通过虚拟机连接到 MySql 数据库了。