mysql 创建主从数据库_Mysql数据库主从复制搭建

Mysql数据库主从复制原理:

主库开启bin-log日志,同时生成IO线程。IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行;生成标识号 server id ;创建主从复制账号。

从库不需要开启bin-log日志,开启主从复制后,从库将产生一个IO线程,从库IO线程监控主库bin-log日志,当bin-log 日志发生变化时,从IO线程将会通过3306端口向主IO线程申请验证,进行数据交换,具体验证信息:1 主库IP和端口号、2 主库的复制账号和密码、3 所要复制的bin-log日志的文件名、4 文件中position具体位置。验证通过后主IO线程将对应的内容复制给从IO线程,该过程可以并发进行。此时从库文件master.info 记录了验证信息和完成数据交换的bin-log日志文件及文件中的位置信息。从库IO线程将内容放在从库中继日志relay-log中。SQL线程启动,查看relay-log ,将其中更新的二进制语句编译解析成sql语句,存储在从库的mysql data 目录中,并在relay-log.info文件中记录sql进程解析relay-log的文件名及位置信息,完成主从复制。

主从备份搭建

试验环境:master: 1922.168.200.151  slave : 192.168.200.129

一、     建立时间同步环境

l  Master:安装配置ntp时间同步服务

#yum –y install ntp

#cp /etc/ntp.conf /etc/ntp.conf.origin

#vim /etc/ntp.conf

22 server 127.127.1.0  //手动添加

23 fudge 127.127.1.0 startum 8 //手动添加

5679186d680aa8ce720c21216633c4b5.png

#/etc/init.d/ntpd start

#chkconfig ntpd on

l  Slave :

# yum –y install ntpdate

#ntpdate 192.168.200.151

18d5a11f9b158bbbaa4853f309444596.png

二、     在master上执行操作配置

1、     1.1开启bin-log日志,并设置server-id 值

# vim /etc/my.cnf

mysql 创建主从数据库_Mysql数据库主从复制搭建_第1张图片

**上面三个参数要放在[mysqld]模块下;添加参数并不能重复

#/etc/init.d/mysqld start

f3e00df78e81889f86d1ea1d02a71651.png

1.2登陆数据库,检查参数的更改情况

826da74506901e82f60319d80919b16f.png

mysql 创建主从数据库_Mysql数据库主从复制搭建_第2张图片

2、   建立主从复制账号(权限为允许从库连接并同步数据)

2.1登陆数据库,建立主从复制账号yunjisuan

#mysql –uroot –p123123

>grant replication slave on *.* to ‘yunjisuan’@‘192.168.200.129’identified by ‘yunjisuan123’;

d47aa58b7e7ced4196104b65451d5e16.png

注:replication slave 为mysql同步的必须权限,此处不要授予all权限

>flush privileges;

2.2检查创建的账号

>select user,host from mysql.user;

mysql 创建主从数据库_Mysql数据库主从复制搭建_第3张图片

3、 对主库锁表全备份

3.1对主数据库锁表只读

>flush table with read lock;  //零时锁表,超过设置时间,将会自动解锁

0687798b0626c28b92f98eca0ea0f60f.png

3.2 锁表后查看主库状态。可通过当前bin-log日志文件名和bin-log日志偏移量来查看

注:show master status 命令显示信息要记录在案,后面从库导入全备后,继续和主库复制是要从这个位置开始。

> show master status;

mysql 创建主从数据库_Mysql数据库主从复制搭建_第4张图片

3.3新开一个SSH窗口,全备数据库数据

c0090c1e8cb066b117293ad936939e16.png

3.4 解表主库

>unlock tables;

3.5 将全备数据推送到从库

01e1c529fe3fdc57fa6a44d278f582d7.png

三、     配置从服务器

1.1    将全备份数据导入从库

#mysql –uroot –p123123 < /temp/mysql_all*

2.2#vim /etc/my.cnf

mysql 创建主从数据库_Mysql数据库主从复制搭建_第5张图片

#/etc/init.d/mysqld start

2.3 给从库记录主从复制验证信息

8d28ad031b470d0d301b93b0c2886b1d.png

2.4启动从库主从复制开关,并查看复制状态

eb4b5f2f78a91c4ad166ba7394d8d934.png

mysql 创建主从数据库_Mysql数据库主从复制搭建_第6张图片

导致lave_IO_Running 为connecting 的原因主要有以下 3 个方面:网络不通;

密码不对;pos不对

经排查是秘密输错了,再次>show slave status\G;

mysql 创建主从数据库_Mysql数据库主从复制搭建_第7张图片

你可能感兴趣的:(mysql,创建主从数据库)