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

liunx - mysql数据库主从同步配置

2017-06-08 17:39 429 查看

一、主从同步简介

1. 主从同步机制

 Mysql服务器之间的主从同步是基于二进制日志的机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器数据的一致。

在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类时间(譬如只插入数据或者只更新数据),默认为执行日志中的所有语句。

2. 主从同步的配置步骤总结

1).在主服务器上,必须开启二进制日志机制和配置一个独立的ID

2).在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号

3).在开始复制进程前,在主服务器上记录二进制文件的位置信息

4).如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)

5).配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置

二、配置主从服务器

主库:192.168.230.1

从库:192.168.230.2

两个数据库都安装了相同版本Mysql数据库,且都可以从远程连接以及访问

1. 主库配置

1)、修改mysql配置文件 /etc/my.cnf(编辑:vi  /etc/my.cnf),这部分一定要配置在[mysqld]后面

server-id=1   #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog-do-db=elp 
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog-ignore-db=mysql   #不同步mysql系统数据库

      :wq强制保存配置

2)、重启mysql服务(不同系统重启命令有差别)

      service mysql.server restart

3)、登陆主库mysql

      mysql -u root -p (然后输入数据库密码登陆)

4)、进入主库之后给主数据库授权一个可以进行复制的账号,执行命令如下:

       grant replication slave on *.* to 'rep'@'192.168.230.%' identified by '123456';
#注意:用户名slave和密码123456可以自定义

5)、查看是否创建成功

       use mysql;

       select user ,host from user;



6)、查看my.cnf中配置的server-id是否成功

       mysql> show variables like 'server_id';

      

      

7)、查看主库信息

      mysql> show master status;

    


    
注意:记录下这些值,在从库配置的时候要用到

8)、迁移数据,将主库的elp数据复制到从库,保证主从库拥有两个一样的数据库elp

2. 从库配置

1)、修改mysql配置文件 /etc/my.cnf(编辑命令:vi  /etc/my.cnf),这部分一定要配置在[mysqld]后面

server-id=2  
#设置服务器id,为2表示从服务器(也可以为其他值),注意:如果原来的配置文件中已经有这一行,就不用再
添加了。

:wq强制保存配置

      注意 : 重启下mysql服务

       进入mysql查看是否配置成功

     


2)、登录到从库的数据库,做同步设置(此处要用到上面7)中记录的数据)

      mysql> slave stop;  #先关闭库服务

     


     
#注意:语句中的逗号不要有空格,可以连在一起写,(为了方便阅读做了换行)

      mysql> slave start; 
#再启动库服务

3)、测试同步结果

         在主库elp中新建一个表test,然后看下从库是否相应生成对应的test表,如果生成了那么恭喜你,主从同步配置就成功了。

4)、查看状态

         mysql> show slave status \G

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