mysql主从复制

一、master操作

1.在master主机配置my.cnf

在[mysqld]配置段添加如下字段中增加
log-bin=mysql-bin.log
binlog-do-db=jigumi #要同步的数据库的名字
binlog-do-db=dsp #要同步的数据库的名字
server-id=1
重启mysql

2.进入mysql

mysql>grant replication slave on *.* to 'rep123'@'%' identified by '123456';

mysql>flush tables with read lock;mysql>show master status:

mysql> show master status\G

*************************** 1. row ***************************

           File: mysql-bin.000134

       Position: 1066843321

   Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

记录file和position的值

备份数据库,传到slave

mysql>unlock tables;


二、slave操作

1.建数据库,导数据库

2.在my.cnf里设置

server-id=2

重启数据库

3.进入mysql

stop slave;

change master to master_host='ip_address',master_user='rep123' ,master_password='123456l',master_log_file='mysql-bin.000134',master_log_pos=1066843321;

start slave;

show slave status\G

下面两个都是Yes才是成功

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes


三、测试

在主上的dsp和jigumi上测试建表,删表,在从上查看



四、碰到问题

1.由于我配置的时候没有锁表,出现Slave_SQL_Running: No,Last_Errno: 1062,

这是由于Position: 1066843321这个值变了

这个时候slave-skip-errors = 1062加到从数据库的my.cnf里

重启数据库,重新开启start slave

所以配置主从最好锁表

2.show slave status\G看到的Master_Log_File: mysql-bin.000134这个值会随着主服务器变动的



你可能感兴趣的:(Mysql主从)