mysql集群 java_Java程序访问Mysql Cluster

针对我们上文双机冗余备份和负载均衡策略(Mysql Cluster入门安装配置指南)中配置好的mysql集群,我们应当下面就创建数据库,利用Mysql Cluster来进行冗余备份和负载均衡,

在192.168.56.10或者192.168.56.20任意一台机器上,访问数据库,命令为:

1 bin/mysql

比如现在我在192.168.56.10机器上面创建数据库assetscenterdb,执行命令:

1 create database assetscenterdb

创建成功之后,在192.168.56.20的机器上面就可以看到我们创建的这个数据库,接下来我们要创建数据库表,

这里我们注意数据库表的ENGINE是ndb,比如说数据库里面我的一个表结构这个样子:

1 CREATE TABLE `AC_ASSET` (

2 `ID` int(11) NOT NULL AUTO_INCREMENT,

3 `TYPE_ID` int(11) NOT NULL,

4 `STATUS` tinyint(4) NOT NULL,

5 `SN` varchar(50) DEFAULT NULL,

6 `DESCRIPTION` text,

7 `ELTMS` varchar(50) DEFAULT NULL,

8 `ORDER_NAME` varchar(50) DEFAULT NULL,

9 `OWNER_NAME` varchar(50) DEFAULT NULL,

10 `WAREHOUSE_TIME` varchar(50) DEFAULT NULL,

11 `LOCATION` varchar(100) DEFAULT NULL,

12 `PRICE` double DEFAULT NULL,

13 `USER_NAME` varchar(50) DEFAULT NULL,

14 PRIMARY KEY (`ID`)

15 ) ENGINE=ndb AUTO_INCREMENT=1726 DEFAULT CHARSET=utf8;

只有这样子,这两台机器才能共享数据库的数据结构,此时在另外一台机器上面,执行命令:

1 show tables

就可以看到我们创建的这张表。

那么Java程序如何访问呢,我采用的Jdbc驱动为mysql-connector-5.1.12,连接串如下:

1 jdbc:mysql:loadbalance://192.168.56.10:3306,192.168.56.20:3306/assetscenterdb?roundRobinLoadBalance=true

使用roundRobin算法,若是其中一台机器down掉以后,将会自动将不能访问的数据库服务器 踢除,如果还原后将继续进行压力分载。

其余的数据库操作就和普通的一样。

接下来我们还需要配置数据库允许远程访问,比如我把服务器放在192.168.56.30机器上面,我需要在另外两台机器上面分别配置:

1 grant all on *.* to root@"192.168.56.30" Identified by "你的密码"

然后你运行服务器就可以正常访问了。

因为我就遇到了这种问题,我本地用上述配置就可以了,可是我把机器放到LAB中去了,mysql连接不上了,出现了ERROR 1042 (HY000): Can't get hostname for your address错误,

可能就是mysql的DNS解析除了问题,我的本地环境和Lab的DNS不一样,才会造成这个问题的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值