(参考)http://kb.cnblogs.com/page/79634/
测试环境:2台linux PC机, Linux version 2.6.32-5-686 (Debian 2.6.32-30)
192.168.3.100(主)
192.168.3.104(从)
1 在master服务器上,给slave服务器添加帐号
mysql > grant replication slave on *.* to 'test'@'192.168.3.104' identified by '123456'
1.1 在slave上的连接master的mysql数据库,测试是否连接正常:
mysql -h 192.168.3.100 -u test -p 123456
2 配置master服务器的my.cnf文件
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
#要同步的数据库
binlog_do_db = test
#忽略同步的数据库
binlog_ignore_db = mysql
3 配置 slave服务器的my.cnf文件
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host = 192.168.3.100
master-user = test
master-password = 123456
master-port = 3306
master-connect-retry = 60
replicate-do-db = test
replicate-ignore-db = mysql
重启master上的mysql (执行命令 : service mysql restart)
重启slave上的mysql (执行命令 : service mysql restart)
4 先把master,slave数据库数据同步,手动(用sql文件 等 方法)
5 查看master数据库的日志位置和名称
在master数据库中运行
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1942 | test | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
在slave库中设置同步,
在从库上设置同步
设置连接MASTER ,
MASTER_LOG_FILE为主库的日志文件,MASTER_LOG_POS为主库的日志Position
2. MySQL> change master to master_host='192.168.3.100',
master_user='test', master_password='123456',
3. master_log_file='binlog.000003', master_log_pos=1942;
4. MySQL> slave start; #再次启动slave
查看slave运行是否正常:
进行slave的mysql,
mysql > show slave status\G;
主要看这三项:
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果和上面一样就表明正确!
-----------------
接下来 ,在master的test数据库添加一条记录,然后,查看slave中的test库是否有相应的修改
master中test.a表
slave中test.a表
2表数据一样,同步成功。。。。