主数据库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_Running和Slave_SQL_Running如果都为Yes时,表示配置成功
转载于:https://blog.51cto.com/freewiller/852440