主从复制

一主一从:

Master IP:10.0.0.25
Slave  IP:10.0.0.76

(1)在Master上操作
记得将skip-grant-tables选项关闭
首先将log-bin日志打开
其次将server-id设置为1
将log-slave-updates给关闭掉
即在/etc/my.cnf里log-bin     server-id=1   前面的#号去掉,log-slave-updates前面的#号加上,我的my文件里没有此选项,要用的时候在mysqld下加上这一选项

退出来后,要重启mysqld服务
/etc/init.d/mysqld  restart


建立一个内部复制通信用户
mysql> grant replication slave on *.* to 'admin'@'10.0.0.76' identified by 'aixocm';
mysql> flush privileges;


(2)在Slave上操作
首先将bin-log日志打开
其次将server-id设置为2
将log-slave-updates打开
即在/etc/my.cnf里log-bin =。。前面的#号去掉, 设置server-id=2 ,前面的#号加上,我的my文件里没有log-slave-updates选项,在mysqld下加上这一选项,不用时前面加上#号为关闭

退出来后,要重启mysqld服务
/etc/init.d/mysqld  restart


>stop slave;
>change master to master_host='10.0.0.25',master_user='admin',master_password='aixocm',
master_log_file='mysql-bin.000048',master_log_pos=316;

####master_log_file='mysql-bin.000048',master_log_pos=316;这两个选项的值与master机的配置一样
用下面命令查看
mysql> show master status\G;
*************************** 1. row ***************************
           File: mysql-bin.000048
       Position: 316
   Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)


>start slave;
>show slave status\G;



一主多从:
master :10.0.0.25
slave1:10.0.0.189
slave2:10.0.0.76
操作步骤如下:
(1)在Master上操作
记得将skip-grant-tables选项关闭

即在/etc/my.cnf里log-bin     server-id=1   前面的#号去掉,log-slave-updates前面的#号加上,我的my文件里没有此选项,要用的时候在mysqld下加上这一选项

退出来后,要重启mysqld服务
/etc/init.d/mysqld  restart

因为admin只能从一个,所以多从时要用user
建立两个内部复制通信用户
mysql> grant replication slave on *.* to 'user'@'10.0.0.189' identified by 'aixocm';
mysql> grant replication slave on *.* to 'user'@'10.0.0.76' identified by 'aixocm';
mysql> flush privileges;


(2)在Slave1上的操作
在/etc/my.cnf里log-bin =。。前面的#号去掉, 设置server-id=2 ,前面的#号加上,我的my文件里没有log-slave-updates选项,在mysqld下加上这一选项,不用时前面加上#号为关闭

退出来后,要重启mysqld服务
/etc/init.d/mysqld  restart


mysql> stop slave;
mysql> change master to master_host='10.0.0.25',master_user='user',master_password='aixocm',master_log_file='mysql-bin.000050',master_log_pos=863;

mysql> start slave;
mysql> show slave status\G;

####master_log_file='mysql-bin.000050',master_log_pos=863;这两个选项的值与master机的配置一样
用下面命令查看
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000050 |      863 |              |                  |
+------------------+----------+--------------+------------------+

(3)在Slave2上的操作
在/etc/my.cnf里log-bin =。。前面的#号去掉, 设置server-id=3 ,前面的#号加上,我的my文件里没有log-slave-updates选项,在mysqld下加上这一选项,不用时前面加上#号为关闭

退出来后,要重启mysqld服务
/etc/init.d/mysqld  restart


mysql> stop slave;
mysql> change master to master_host='10.0.0.25',master_user='user',master_password='aixocm',master_log_file='mysql-bin.000050',master_log_pos=863;

mysql> start slave;
mysql> show slave status\G;