您的位置:首页 > 数据库 > MySQL

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;



如果能看到刚刚的表就说明主从复制配置成功了。

 

          

         

               

    

         

       

           

            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: