环境为主库是111.111.111.110 从库为111.111.111.111
1. 主库创建数据库复制专用用户
--在主库上执行,创建用户repl
mysql –uroot
grant replication slave,replication client on *.* to [email protected]‘111.111.111.%‘ identified by ‘repl‘;
exit;
--修改配置文件/etc/my.cnf
cp /etc/my.cnf /etc/my.cnf.bak
vi /etc/my.cnf
修改主库参数如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
log-bin=mysql-bin
old_passwords=1
server_id = 110
sync_binlog = 1
relay_log = /var/lib/mysql/mysql-relay-bin
# enable log_slave_updates
log_slave_updates = 1
skip_slave_start
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2.关闭数据库
--在主库上执行
service mysqld stop
3.备份主库
--在主库上执行
tar zcvf /tmp/mysql.tar.gz /var/lib/mysql
4.将主库的备份传送到从库
--在主库上执行
rsync -auzvP --bwlimit=10240 /tmp/mysql.tar.gz 111.111.111.111: /tmp/mysql.tar.gz
rsync –auzvP --bwlimit=1024 /etc/my.cnf 111.111.111.111:/etc/my.cnf
5.在备库恢复主库的备份
--在备库执行
mv /var/lib/mysql /var/lib/mysqlbak
mv /tmp/mysql.tar.gz /var/lib/
tax xvf /var/lib/mysql.tar.gz
6.在备库修改配置文件/etc/my.cnf
--在备库执行
--修改配置文件/etc/my.cnf
vi /etc/my.cnf
修改参数如下
[mysqld]
server_id = 111
7.在备库启动数据库
--在备库执行
service mysqld start
8.在主库上启动数据库
service mysqld start
mysql –uroot –p
show master status;
9.根据上一步获取到的bin log文件名和position,在备库启用复制
--在备库执行(将命令master_log_file=‘mysql-bin.0000099‘,master_log_pos=5中的值mysql-bin.0000099和0 修改为上一步获取到的值)
change master to master_host=‘111.111.111.110‘,
master_user=‘repl‘,
master_password=‘repl‘,
master_log_file=‘mysql-bin.00000xx‘,
master_log_pos=0;
--启动复制进程
start slave;
show slave status\G
show processlist\G