首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为我们的MySQL 7数据源配置MySQL ReplicationDriver?

如何为我们的MySQL 7数据源配置MySQL ReplicationDriver?
EN

Stack Overflow用户
提问于 2014-08-14 02:43:23
回答 3查看 1.8K关注 0票数 3

我们使用的是MySql 5.5.37和JBoss 7.1.3,以及MySQL连接器-java-5.1.22-bin.jar。如何配置我的JBoss‘standalone.xml数据源以连接到MySQL的主从配置?我尝试了下面的方法

代码语言:javascript
复制
            <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql:replication//master.amazonaws.com:3306,slave.amazonaws.com:3306/dbsid?failOverReadOnly=true;roundRobinLoadBalance=true</connection-url>
                <driver>mysql</driver>
                <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                <pool>
                    <min-pool-size>10</min-pool-size>
                    <max-pool-size>100</max-pool-size>
                    <prefill>true</prefill>
                </pool>
                <security>
                    <user-name>sb</user-name>
                    <password>sb</password>
                </security>
                <statement>
                    <prepared-statement-cache-size>32</prepared-statement-cache-size>
                    <share-prepared-statements>true</share-prepared-statements>
                </statement>
            </datasource>
            <drivers>
                <driver name="mysql" module="com.mysql">
                    <xa-datasource-class>com.mysql.jdbc.ReplicationDriver</xa-datasource-class>
                </driver>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
            </drivers>

但是,当我重新启动服务器时,我会得到异常…

代码语言:javascript
复制
Caused by: javax.resource.ResourceException: Wrong driver class [class com.mysql.jdbc.Driver] for this connection URL [jdbc:mysql:replication//master.amazonaws.com:3306,slave.amazonaws.com:3306/dbsid?failOverReadOnly=true;roundRobinLoadBalance=true]
        at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:256)
        ... 47 more

我打开了我的JAR并验证了ReplicationDriver类在那里。不知道我还应该尝试什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-17 15:22:32

不知道我为什么要乱搞xa-数据源类元素,但对我有用的是

代码语言:javascript
复制
                <driver name="mysql" module="com.mysql">
                    <driver-class>com.mysql.jdbc.ReplicationDriver</driver-class>
                </driver>
票数 1
EN

Stack Overflow用户

发布于 2014-09-12 07:09:54

对我来说,这是可行的:

代码语言:javascript
复制
<driver name="com.mysql" module="com.mysql">
      <driver-class>com.mysql.jdbc.Driver</driver-class>
      <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
票数 2
EN

Stack Overflow用户

发布于 2014-09-18 12:38:05

驱动程序实现是基于连接-url选择的。

如果您指定了一个连接url,如“jdbc: MySQL :MySQL/.”,则ReplicationDriver连接器/J返回ReplicationDriver实现。

如果将驱动程序类设置为com.mysql.jdbc.ReplicationDriver,则所有数据源都被解码为"replication“,并且必须始终包含一个主服务器和至少一个从服务器。

我认为使用url自定义(复制、负载平衡、fabric.)来选择正确的实现更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25299210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档