Mysql实现主从数据库

一、前言

要了解主从原理,我们首选要从mysql的二进制文件说起。MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。

那么,我们只要能通过io实时传递二进制文件新增内容,就能实现数据库内容同步。在这里我们还应该满足同步的数据库具有相同初态。

总结起来,我们要做的就有三件事,第一,安装mysql环境,第二,同步数据库具有统一初态,第三、同步数据库实时传递二进制日志内容、

二、环境准备

1、两台centos服务器(可采用虚拟机,或者本地用不同端口)

2、安装相同版本的mysql软件(版本不同,可能导致未知错误)

3、常见错误请见:传送门

附:mysql安装步骤:

#获取mysql库文件
sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
#安装mysql
sudo yum install mysql-community-server
#启动mysql
sudo service mysqld start
#查看初始密码
sudo grep 'temporary password' /var/log/mysqld.log
#登录mysql
mysql -uroot -p

三、同步主从数据

第一步、将主服务器要同步的数据库加锁,避免同步时发生改变:

use database_name;
flush tables with read lock;

第二步、使用mysqldump工具导出数据:

mysqldump -uroot -pxxx database_name >database_name.sql

第三步、备份完成后,解锁数据库:

unlock tables;

第四步、将初始数据导入从数据库:

create database database_name;
use database_name;
source database_name.sql;

四、配置主从数据库

1、主数据库

第一步、修改配置:vim  /etc/my.cnf

log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id

第二步、创建同步账号

#创建账号
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#赋予同步权限
GRANT privileges ON databasename.tablename TO 'username'@'host'

第三步、查看master信息:show master status

2、从数据库

第一步、修改配置:vim  /etc/my.cnf

log-bin=mysql-bin                                 #开启二进制日志
    

server-id= 2                                      #主数据库id为1,不能相同。
replicate_wild_do_table=test.%                    #只同步test库下的表
relay_log=mysqld-relay-bin                        #记录中继日志
log-slave-updates=YES                             #从服务器同步后记录日志

第二步、更改master

#log_file与主数据库的File一致,log_pos与主数据库的Positio一致
change master to     
              master_host='xxxxx',               
              master_user='sunyiran',    
              master_password='sunyiran_baiduyun2G',   
              master_log_file='mysql-bin.000001',    
              master_log_pos=155;

第三步、查看slave状态

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值