mysql5.6版本-主从复制配置详细步骤

5 篇文章 0 订阅
3 篇文章 0 订阅
准备工作:
在两台服务器上安装同版本mysql数据库;
确保mysql主从服务器之间的数据库端口防火墙互相打开;
确保主从数据库账户一致性(主从切换使用),否则将操作失败;
确保mysql账户对my sql数据库 目录有“可读写”权限非“可写”权限 chown -R mysql:mysql /path,
确保不出意外,最好删除 mysql 之前陈旧的mysql-bin、mysql日志,然后重启mysql;
查看版本:mysql> status \G; 

一、在主库创建用户

    
    
mysql>create user backup; //创建新用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.76.%' IDENTIFIED BY 'mysql'; //repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。


二、修改主数据库的配置文件/etc/my.cnf (其他参数保持,以下为新增)

    
    
[mysqld]
server-id=1 //[必须]默认是1,一般取IP最后一段
log-bin=mysql-bin.log // [主从必须]启用二进制日志,默认在mysql路径下
sync_binlog=1 //为了保证事务InnoDB复制设置的最大可能的耐受性和一致性,应在主服务器使用
innodb_flush_log_at_trx_commit=1 // 同上

三、修改从数据库的配置文件/etc/my.cnf  

    
    
[mysqld]
port=3306
server-id=2 //从库配置编号
bing-address=0.0.0.0 //[可选]意思是允许所有 机器 服务器安全起见可设置为指定的服务器IP地址 如 116.128.1.10等
log-bin=mysql-bin.log // [主从必须]启用二进制日志,默认在mysql路径下
 
binlog-do-db =new_test (要记录的数据库,多个可换行多次设置)
replicate-do-db =new_test (要复制的数据库,多个可换行过个设置)
 
binlog-ignore-db=mysql //不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
replicate-ignore-db=test //不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
 
binlog-ignore-db=mysql //不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
replicate-ignore-db=test //不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql


四、重启两台服务器的mysql

service mysql restart

五、登录主服务器的mysql,查询master的状态(可在phpmyadmin 中执行次操作)

mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 120 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

六、配置从服务器Slave(5.1以后的版本不支持在my.cnf中配置主库信息了,如下用命令配置):

    
    
mysql>change  master to master_host='xx.xx.xx.xx', master_port=3306, master_user='backup', master_password='yourpasswd', master_log_file='mysql-bin.000001',master_log_pos=120 //注意不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。(此处可在从服务器phpmyadmin中用sql语句操作)
Mysql>start slave; //启动从服务器复制功能(可在phpmyadmin中执行该SQL语句) 
如果需要修改:
1.Slave:  stop slave;
2.Master:  flush logs
3.Master:  show master status; — take note of the master log file and master log position
4.Slave:  CHANGE MASTER TO MASTER_LOG_FILE=’log-bin.00000X′, MASTER_LOG_POS=106;
5.Slave:  start slave ;
修改完了一定记得要启动start slave,否则用show的时候看到的是旧的配置

七、检查从服务器复制功能状态:

mysql> show slave status\G (可在从服务器phpmyadmin中执行“show slave status” SQL语句)
*************************** 1. row ***************************
……………………(省略部分)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
……………………(省略部分)
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成。

八、测试是否正常复制,在主库创建文件,从库更新


Refs:
http://www.cnblogs.com/xiao-yu/archive/2011/06/14/2080842.html 清晰但版本过老,my.cnf已经不能写入master信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值