主数据库IP:192.168.0.10

从数据库IP:192.168.0.20

1.编辑主数据库的配置文件/etc/my.cnf,在[mysqld]中添加如下内容即可:

log-bin=mysql-bin

expire_logs_days=20     //设置binlog的保留时间

binlog_format=mixed     //主从复制模式,混合模式(MBR)默认的

binlog_cache_size=4M    //设置binlog缓存大小

max_binlog_size=300M    //设置binlog文件最大体积

server-id = 1

 

2.编辑从数据库的vim /etc/my.cnf 配置文件,前面配置参数和主的一样,都是根据硬件内存调整参数

log-bin = mysql-bin

binlog_format = mixed

expire_logs_days = 20

binlog_cache_size = 4M

max_binlog_size = 300M


server-id = 2

read_only = 1

 

3.在主数据库上建立复制用户,登入数据库进行用户授权

mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.20' identified by 'repl';

 

4.备份Master数据

在主数据库服务器上操作,执行备份:

$ mysqldump -uroot -ppassword -h 127.0.0.1 --database dbname --master-data=1 > backup.sql

(备份命令增加 --master-data参数,备份出来的sql文件里面会有change语句,指定了同步位置信息MASTER_LOG_FILE和MASTER_LOG_POS,在后面输入主从同步的时候可以不指定这些信息,还是比较方便的

传送到从服务器:

$ scp  backup.sql  root@192.168.0.20:/data/backup

在从数据库服务器上操作,执行还原:

 

mysql> grant all privileges on *.* to repl@'192.168.0.20' ;

mysql> flush privileges;

mysql> show databases;

mysql> create database dbname;

mysql> use  dbname;

mysql> set names utf8;

mysql> source /data/backup.sql

mysql> exit

 

 

 

mysql>

CHANGE MASTER TO MASTER_HOST='192.168.0.10',

MASTER_USER='repl',

MASTER_PASSWORD='repl'

mysql > slave start;

mysql > show  slave status\G

 

从输出看到:Slave_IO_RunningSlave_SQL_Running如果都为Yes时,表示配置成功