如何设置mysql master slave 配置

原文:http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

通常要用到的设置,包括了所有的复制设置:

1,master端,必须要确保二进制日志(binary logging),并且配置一个唯一的server ID。binary log是主库往从库发送数据的依据,必不可少。server ID 为1到(232)–1之间的任意整数。在my.cnf 或者my.ini中进行配置如下

[mysqld]
log-bin=mysql-bin
server-id=101
配置完成需要 重启mysql

2,slave端,只需要配置一个没有使用过的server-id就好,如下:

[mysqld]
server-id=102
3,在master端为slave库创建一个用户,让从库可以连接主库,授予 “REPLICATION_SLAVE”权限,任意账户都可以但为了和其他的需求冲突的需要,还是单独创建一个好:

CREATE USER 'repl'@'%11.11.11.%' IDENTIFIED BY 'slavepass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%11.11.11.%';
4,获取主库binary log 坐标(coordinates)

master库中已存在数据时,如果你想将数据同步到slave库中,必须先停止主库的处理语句(processing statements,主要应该是写入操作),获取坐标然后导出数据,在这期间不能执行写入操作,否则的话导出的数据和主库的状态信息将会不匹配,最后slave库中的数据会不一致。

停止处理语句使用:(注意:退出客户端将会释放lock,所以导完数据之前的时候要保持这个客户端 )

FLUSH TABLES WITH READ LOCK;
获取coordinates:
SHOW MASTER STATUS;

记下File和Position的值 然后导出数据,可以用复制数据文件的方法

……

5,数据同步完成后(这时可以关掉主库的客户端了或者执行unlock tables)进入slave库命令行执行

start slave
然后设置主库
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
host 是master所在的ip , user 和password就是上面设置repl和slavepass

recorded_log_file_name 和recorded_log_position则是第四步记下的File和Position

如此,设置便完成了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值