本文档仅在于实验Mysql的Replication功能,没有考虑权限等其他问题,用于实验的服务器和客户机请使用没有安装过Mysql的计算机,如果安装过Mysql请卸载。请按照下面的顺序依次进行,改变顺序可能导致实验失败。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1、在下面地址下载免安装的Mysql数据库
http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-noinstall-5.0.13-rc-win32.zip/from/pick
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 *.* TO slave@"%" 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 #改为服务器IP
port=3306
master-user=slave
master-password=1234
master-port=3306
master-connect-retry=60
replicate-do-db=test
report-host=192.168.99.49 #改成本机IP
report-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:\即可
运行,出现登陆界面如下:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
点Ok进入,在Replication Status可以看到客户端和服务器的状态
关于配置选项的更多信息请参考
http://dev.mysql.com/doc/mysql/en/replication-options.html
备注:
mysql的命令
注册服务:mysqld-nt –-install
注销服务:mysqld-nt –-remove
启动数据库:net start mysql
停止数据库:net stop mysql
登陆数据库:mysql -u root
mysql的SQL语句
建用户并分配权限:GRANT ALL PRIVILEGES ON *.* TO slave@"%" 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