mysql 数据库主从同步

(参考)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

1. MySQL> slave stop;      #首先停止slave
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表数据一样,同步成功。。。。

  

 

原文地址:https://www.cnblogs.com/flex_fly/p/2243012.html