首页 > 代码库 > 一个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

 

 

 

本文出自 “ORACLE/DB2/MYSQL” 博客,谢绝转载!

一个mysql主从复制的配置案例