针对我们上文双机冗余备份和负载均衡策略(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,
14primary 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 "你的密码"
然后你运行服务器就可以正常访问了。
如果此时你的程序还不能正常访问,那么你就需要看我这一篇博文mysql数据库“error 1042 (hy000): can't get hostname for your address”问题,
因为我就遇到了这种问题,我本地用上述配置就可以了,可是我把机器放到lab中去了,mysql连接不上了,出现了error 1042 (hy000): can't get hostname for your address错误,
可能就是mysql的dns解析除了问题,我的本地环境和lab的dns不一样,才会造成这个问题的。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/