• Activemq5.15.5持久化到mysql8.0.20


    一、环境

      Activemq:5.15.5

      Mysql:8.0.20

      这里面一定要针对自己的环境进行配置,以前用的是mysql 5.x的版本,然后切换为8.0x的版本,各种报错,有配置文件的错误,有mysql授权远程登录等等...

    二、引入jar包到Activemq安装目录下

      我这里Activemq的安装目录是(/usr/local/activemq/apache-activemq-5.15.5),为了避免出错这个mysql数据库的驱动包请保持和你自己windows上安装的版本一模一样.

    三、替换Activemq默认的持久化方式

      具体的配置如下:

    <persistenceAdapter>
    	<!-- 注释掉默认的kahaDB-->
    	<!-- <kahaDB directory="${activemq.data}/kahadb"/> -->
    	<!-- 注意这里的dataSource的名字要和下面bean里面的名字对应上,这里的有一个#号,类似于spring中的ref(引用))
    	createTablesOnStartup:第一次连接会为我们生成表,默认值是true,生成完了表之后,改为false-->
    	<jdbcPersistenceAdapter useDatabaseLock="false" dataSource="#mysqlDs" createTablesOnStartup="true"/>
    </persistenceAdapter>
    

      

    四、配置数据源

      具体的配置如下:

    <bean id="mysqlDs" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close" >
    	<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    	<!-- 192.168.229.1是我windows上装的mysql,对于mysql 8.x以后的版本,请加上后面几个参数-->
    	<property name="url" value="jdbc:mysql://192.168.229.1:3306/activemq?relaxAutoCommit=true&useSSL=false&serverTimezone=GMT%2B8" />
    	<property name="username" value="root" />
    	<property name="password" value="root" />
    	<property name="poolPreparedStatements" value="true"/>
    </bean>
    

      

    五、启动Activemq

      启动之后,可以看到windows上安装的数据库中自动生成了这几张表,生成完了以后记得设置  createTablesOnStartup="false"

    六、常见错误排查

    1、出现了问题,不要慌,首先去看日志文件,这里有两种方式

      方式一、./activemq console 查看启动日志

      方式二、activemq的安装目录/data里面去查看日志

    2、确认计算机主机名名称没有下划线(不是Linux虚拟机的名称)

    3、如果是win7,停止ICS(运行–>services.msc找到Internet Connection Sharing (ICS)服务,改成手动启动或禁用)

    4、window和Linux的防火墙是否已经关闭

    5、Host is not allowed to connect to this MySQL server:Mysql不允许root用户远程登录,所以远程登录失败了

      解决方案:  

    // 在装有MySQL的机器上使用命令登录mysql	
    MySQL mysql -u root -p密码
    // 使用mysql数据库
    use mysql;
    // 这种方式是开放所有IP的root访问权限,如果是正式环境还是建议使用开放指定IP的方式
    update user set host = ‘%’ where user = ‘root’;
    // 执行刷新权限配置
    FLUSH PRIVILEGES;
    

      开放指定IP的方式

        方式一:授权用户root使用密码jb51从任意主机连接到mysql服务器

        方式二:授权用户root使用密码jb51从指定ip为218.12.50.60的主机连接到mysql服务器

      

      

  • 相关阅读:
    接口测试总结
    在 github 上获取源码
    推荐一个css帮助手册的版本 同时提供chm和在线
    由csdn开源项目评选中闹出刷票问题想到投票程序的设计
    由一个园友因为上传漏洞导致网站被攻破而得到的教训
    让 SVN (TortoiseSVN)提交时忽略bin和obj目录
    未能进入中断模式,原因如下:源文件“XXXXXX”不属于正在调试的项目。
    未能加载文件或程序集“XXXXX”或它的某一个依赖项。试图加载格式不正确的程序。
    .Net AppDomain.CurrentDomain.AppendPrivatePath(@"Libs");
    C# Remoting的一个简单例子
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/13737493.html
Copyright © 2020-2023  润新知