主mysql

更改主mysql配置文件:vim /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

log_bin=dbsvr1-bin     \\启用日志,指定日志前缀

server_id=1        \\指定服务器id

innodb_flush_log_at_trx_commit=1    \\事务提交或事物外的指令需要把日志写入硬盘

sync-binlog=1        \\允许日志同步

保存重启服务

mysql>grant replication slave on *.* to 'web'@'192.168.1.11' identified by '123456';

mysql> show master status \G

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

            File: dbsvr1-bin.000001    \\当前的日志文件名

        Position: 750            \\偏移的位置

    Binlog_Do_DB: 

Binlog_Ignore_DB: 

1 row in set (0.00 sec

从mysql

更改从mysql配置文件:vim /etc/my.cnf

[mysqld]

log_bin=dbsvr2-bin     \\启用日志,指定日志前缀

server_id=2         \\指定服务器id,不能与主mysql的id相同

innodb_flush_log_at_trx_commit=1  \\事务提交或事务外的指令需要把日志写入硬盘

sync-binlog=1            \\允许日志同步

log_slave_updates=1          \\记录从库的更新便于实现主从从链式复制

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

read_only=1              \\从数据库启用只读

保存配置文件重启服务

通过change master to 指定服务器的ip 用户名 密码 log日志和偏移量。

mysql> change master to master_host='192.168.1.10', master_user='web', master_password='123456', master_log_file='dbsvr1-bin.000001', master_log_pos=750;

mysql> start slave;

启用slave复制,当需要修改master信息时,应先执行stop slave停止,在修改,修改完成后,启动复制start slave。

检查slave服务器的同步状态

mysql>show slave status \G

Slave_IO_Running: Yes    \\io线程应该已运行

Slave_SQL_Running      \\sql线程应该已运行