MySQL 主从复制
2017-10-21 18:11
246 查看
在开始主从复制前,搭建好自己的MySQL服务器,主服务器master,从服务器slave。
如果你的slave是从master 直接克隆过来的,首先 执行
find / -name auto.cnf 查找 auto.cnf文件 ,去修改auto.cnf文件,修改最后一位就行。
1、去编辑master 和 slave 的配置
master : /etc/my.cnf
[mysqld]下添加
server-id
=1
log-bin=mysql-bin
binlog-format=mixed
每一个mysql
都拥有一个唯一的id,在这给他加一个唯一的id。log-bin
开启二进制日志 。
binlog-format两种方式
, mixed 混合的
row :记录磁盘变化
slave
: /etc/my.cnf
[mysqld]下添加
server-id
=2
log-bin=mysql-bin
relay-log=mysql-relay
在slave这边也给他一个id,不要和master那边一样
,打开relay-log
日志
编辑完以后重启maste
和slave 的 mysqld 服务
systemctl
restart mysqld
在master
中 ,进入MySQL,在mysql库创建一个用户并授权给slave
grant
all privileges on *.* to repl@'192.168.127.%' identified by 'MySQL-123456';
grant
权限(all为全部) on 数据库.*(建议给*.* 全部数据库) to 用户名@登录主机(slave的ip地址,最后一位建议给%) identified by "密码(这里会出一个密码过于简单的错误,建议使用MySQL-123456,我用这个直接成功)";
用下边的命令查看master状态
mysql>show
master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
到了这一步,master这边的操做就差不多了。
再去配置slave
change
master to
master_host='192.168.1.201',
master_user='repl',
master_password='repl',
master_log_file='mysql-bin.000001',
master_log_pos=308;
host为master地址 //user和
password 为 刚才创建的 用户名 、密码
log_file
为 文件名(可以在master服务器 show master status获得)
重启slave复制功能
start
slave
查看slave复制功能的状态
mysql>show
slave status\G
可以看到Slave_IO_Running
和 Slave_SQL_Running 是 yes 状态,如果有一个不是yse那就是没配置成功。
然后回到master
,进行测试 :
建
一个表
mysql> create
database t1;
进入t1表,创建表
:
CREATE
TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
添加数据
insert
into t1 values(null,'haha');
然后到slave查看:
show
databases;
如果能看到刚刚的表就说明主从复制配置成功了。
如果你的slave是从master 直接克隆过来的,首先 执行
find / -name auto.cnf 查找 auto.cnf文件 ,去修改auto.cnf文件,修改最后一位就行。
1、去编辑master 和 slave 的配置
master : /etc/my.cnf
[mysqld]下添加
server-id
=1
log-bin=mysql-bin
binlog-format=mixed
每一个mysql
都拥有一个唯一的id,在这给他加一个唯一的id。log-bin
开启二进制日志 。
binlog-format两种方式
, mixed 混合的
row :记录磁盘变化
slave
: /etc/my.cnf
[mysqld]下添加
server-id
=2
log-bin=mysql-bin
relay-log=mysql-relay
在slave这边也给他一个id,不要和master那边一样
,打开relay-log
日志
编辑完以后重启maste
和slave 的 mysqld 服务
systemctl
restart mysqld
在master
中 ,进入MySQL,在mysql库创建一个用户并授权给slave
grant
all privileges on *.* to repl@'192.168.127.%' identified by 'MySQL-123456';
grant
权限(all为全部) on 数据库.*(建议给*.* 全部数据库) to 用户名@登录主机(slave的ip地址,最后一位建议给%) identified by "密码(这里会出一个密码过于简单的错误,建议使用MySQL-123456,我用这个直接成功)";
用下边的命令查看master状态
mysql>show
master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
到了这一步,master这边的操做就差不多了。
再去配置slave
change
master to
master_host='192.168.1.201',
master_user='repl',
master_password='repl',
master_log_file='mysql-bin.000001',
master_log_pos=308;
host为master地址 //user和
password 为 刚才创建的 用户名 、密码
log_file
为 文件名(可以在master服务器 show master status获得)
重启slave复制功能
start
slave
查看slave复制功能的状态
mysql>show
slave status\G
可以看到Slave_IO_Running
和 Slave_SQL_Running 是 yes 状态,如果有一个不是yse那就是没配置成功。
然后回到master
,进行测试 :
建
一个表
mysql> create
database t1;
进入t1表,创建表
:
CREATE
TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
添加数据
insert
into t1 values(null,'haha');
然后到slave查看:
show
databases;
如果能看到刚刚的表就说明主从复制配置成功了。
相关文章推荐
- mysql主从复制的配置总结
- MYSQL简单主从复制原理及实现
- 为什么要对MySQL做主从同步复制
- shell监控脚本实例―监控mysql主从复制
- mysql主从复制
- 单机多实例MYSQL主从复制
- shell监控脚本实例―监控mysql主从复制
- MySQL主从复制介绍
- MySQL的主从复制配置
- MySql之基于ssl安全连接的主从复制
- MySQL 主从复制理解与实践(WINDOWS环境)
- 深入mysql主从复制延迟问题的详解
- MySQL主从复制
- mysql主从复制
- 如何添加新数据库到MySQL主从复制列表
- mysql主从数据库复制
- Mysql 主从复制
- 分布式架构学习之:MyCat在MySQL主从复制基础上实现读写分离
- mysql主从复制实践
- RHEL6.4_64安装MySQL主从复制