天天看點

jdbc:mysql:replication_使用Mysql的Replication功能實作資料庫同步

本文档仅在于实验Mysql的Replication功能,没有考虑权限等其他问题,用于实验的服务器和客户机请使用没有安装过Mysql的计算机,如果安装过Mysql请卸载。请按照下面的顺序依次进行,改变顺序可能导致实验失败。

1、在下面地址下载免安装的Mysql数据库

2、解压缩到C:\Mysql目录下

3、注册服务并运行

开始—〉运行—〉cmd

在C:\Mysql\bin目录下执行以下命令:

C:\Mysql\bin>mysqld-nt –install

C:\Mysql\bin>net start mysql

4、建用户和需要同步的表

登陆数据库

C:\Mysql\bin>mysql -u root

mysql> GRANT ALL PRIVILEGES ON *.* [email protected]"%" IDENTIFIED BY '1234' WITH GRANT OPTION;

mysql> use test

mysql> CREATE TABLE `backup` (

`back_id` int(6) unsigned NOT NULL auto_increment,

`back_name` varchar(100) NOT NULL default 'name',

`insert_user` varchar(100) NOT NULL default 'slave',

`update_user` varchar(100) NOT NULL default 'slave',

`insert_time` datetime NOT NULL default '0000-00-00 00:00:00',

`update_time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

`comment` text,

`delete_flag` tinyint(4) NOT NULL default '0',

PRIMARY KEY(`back_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;;

mysql> INSERT INTO `backup`(back_name,insert_user,update_user,insert_time,update_time,

comment,delete_flag) VALUES ('Repliaction','li.mx','li.mx','2005-08-12 00:00:00','20050816112158',

NULL,0);

mysql>quit

停止数据库

C:\Mysql\bin>net stop mysql

5、部署配置好的数据库

把配置好的数据库拷贝到客户机

拷贝服务器的C:\Mysql到客户机的C:\Mysql

6、编辑服务器的配置文件

服务器C:\Mysql\my.cnf的内容如下:

[mysqld]

server-id=1

log-bin=c:\mysql\mysqllog

binlog-do-db=test

7、编辑客户机的配置文件

客户机C:\Mysql\my.cnf的内容如下:

[mysqld]

server-id=49#改为不重复的整数即可(如IP192.168.99.49的客户机可设为49)master-host=192.168.99.164#改为服务器IPport=3306master-user=slavemaster-password=1234

master-port=3306

master-connect-retry=60

replicate-do-db=test

report-host=192.168.99.49#改成本机IPreport-port=3306

注意:如果再次修改此配置文件,在启动数据库前请删除C:\Mysql\data\master.info.

8、启动服务器

开始—〉运行—〉cmd

在C:\Mysql\bin目录下执行以下命令:

C:\Mysql\bin>net start mysql

9、启动客户机

开始—〉运行—〉cmd

在C:\Mysql\bin目录下执行以下命令:

C:\Mysql\bin>mysqld-nt –install

C:\Mysql\bin>net start mysql

10、在服务器执行SQL,可观察到客户端同步

登陆服务器数据库,插入一条记录

C:\Mysql\bin>mysql -u root

mysql>use test

mysql> INSERT INTO `backup`(back_name,insert_user,update_user,insert_time,update_time,

comment,delete_flag) VALUES ('test','li.mx','li.mx','2005-08-12 00:00:00','20050816112158',

NULL,0);

登陆客户机数据库,可以察看到这条记录

C:\Mysql\bin>mysql -u root

mysql>use test

mysql>select * from backup;

11、安装MySQLAdministrator可以观察到客户机的状态

从下面的地址可以下载免安装的MySQLAdministrator1.1,解压缩到C:\即可

运行,出现登陆界面如下:

jdbc:mysql:replication_使用Mysql的Replication功能實作資料庫同步

点Ok进入,在Replication Status可以看到客户端和服务器的状态

jdbc:mysql:replication_使用Mysql的Replication功能實作資料庫同步

关于配置选项的更多信息请参考

备注:

mysql的命令

注册服务:mysqld-nt –-install

注销服务:mysqld-nt –-remove

启动数据库:net start mysql

停止数据库:net stop mysql

登陆数据库:mysql -u root

mysql的SQL语句

建用户并分配权限:GRANT ALL PRIVILEGES ON *.* [email protected]"%" IDENTIFIED BY '1234' WITH GRANT OPTION;

更改当前数据库:use test

建表:CREATE TABLE `backup` (

`back_id` int(6) unsigned NOT NULL auto_increment,

`back_name` varchar(100) NOT NULL default 'name',

`insert_user` varchar(100) NOT NULL default 'slave',

`update_user` varchar(100) NOT NULL default 'slave',

`insert_time` datetime NOT NULL default '0000-00-00 00:00:00',

`update_time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

`comment` text,

`delete_flag` tinyint(4) NOT NULL default '0',

PRIMARY KEY(`back_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;;

插入一条记录:

INSERT INTO `backup`(back_name,insert_user,update_user,insert_time,update_time,comment,

delete_flag) VALUES ('Repliaction','li.mx','li.mx','2005-08-12 00:00:00','20050816112158',NULL,0);

察看服务器状态:show master status;

察看客户机状态:show slave status;

退出数据库:quit