MySQL主从复制配置案例

一份MySQL主从复制配置案例,环境为主库是111.111.111.110 从库为111.111.111.111。

1.  主库创建数据库复制专用用户

--在主库上执行,创建用户repl

mysql –uroot

grant replication slave,replication client on *.* to repl@'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

相关推荐