码迷,mamicode.com
首页 > 数据库 > 详细

17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步

时间:2018-04-02 18:11:56      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:mysql主从配置

17.1 MySQL主从介绍

1. MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

2. MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

3. 主从过程大致有3个步骤

1)主将更改操作记录到binlog里

2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里

3)从根据relaylog里面的sql语句按顺序执行

4. 主上有一个log dump线程,用来和从的I/O线程传递binlog

5. 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地

MySQL主从原理图 :

技术分享图片

17.2 准备工作

1. 在两个centos系统安装mysql,安装方法见 :

11.3 MySQL安装(上);11.4 MySQL安装(中);11.5 MySQL安装下

2. hao1机器和hao2机器都启动mysql

3. 两个centos系统:设定hao1主  hao2

hao1查看是否启动mysql

[root@hao-01 ~]# ps aux |grep mysql

技术分享图片

hao2查看是否启动mysql

[root@hao-02 ~]# ps aux |grep mysql

技术分享图片

17.3 配置主

1. 编辑/etc/my.cnf配置文件 :

[root@hao-01 ~]# vim /etc/my.cnf

添加内容 :

server-id=128

log_bin=haozc

技术分享图片

2. 重启mysql

[root@hao-01 ~]# /etc/init.d/mysqld restart

3. 查看/data/mysql/目录下,生成以(log_bin)haozc开头的文件

[root@hao-01 ~]# ls /data/mysql/haozc.*

技术分享图片技术分享图片

4. 进入 /data/mysql/目录 :

[root@hao-01 ~]# cd /data/mysql/

5. 创建一个新的库库名haozc

[root@hao-01 mysql]# mysql -uroot -phaomima -e "create database haozc"

ceshiku备份恢复haozc库,作为测试数据

6. 备份mysql数据库,做测试

[root@hao-01 mysql]# mysqldump -uroot -phaomima ceshiku > /tmp/ceshiku.sql

7. 备份的ceshiku.sql库文件,恢复到haozc

[root@hao-01 mysql]# mysql -uroot -phaomima haozc < /tmp/ceshiku.sql

8. hao1机器主  所有mysql数据库备份/tmp/下 :

技术分享图片

[root@hao-01 mysql]# mysqldump -uroot -phaomima haozc > /tmp/haozc.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima mysql2 > /tmp/mysql2.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima zrlog > /tmp/zrlog.sql

[root@hao-01 mysql]# mysqldump -uroot -phaomima ceshiku > /tmp/ceshiku.sql

9. 进入mysql(root用户下):

[root@hao-01 mysql]# mysql -uroot -phaomima

10. 创建repl用户,针对ip是hao2从ip

mysql> grant replication slave on *.* to 'repl'@'192.168.223.129' identified by 'haomima';

11. 表状态锁上暂时不能再写入数据

mysql> flush tables with read lock;

12. 查看红框中两个数值hao2机器需要用这两个数值

mysql> show master status;

技术分享图片

17.4 配置从

1. 编辑/etc/my.cnf配置文件 :

[root@hao-02 ~]# vim /etc/my.cnf

添加内容:

server-id=129

技术分享图片

2. 重启mysql

[root@hao-01 ~]# /etc/init.d/mysqld restart

3. scp命令复制hao1/tmp/所有以.sql备份的mysql数据库文件,粘贴本机hao2/tmp/目录下 :

[root@hao-02 ~]# scp 192.168.223.128:/tmp/*.sql /tmp/

技术分享图片

4. 如果执行找不到mysql -uroot命令,执行下面命令 :

[root@hao-02 ~]# alias 'mysql=/usr/local/mysql/bin/mysql'

[root@hao-02 ~]# alias 'mysqldump=/usr/local/mysql/bin/mysqldump'

[root@hao-02 ~]# ln -s /usr/local/mysql/bin/mysql  /usr/bin

5. 登录mysql(登录root用户) :

[root@hao-02 ~]# mysql -uroot

6. hao2创建hao1主一样的mysql用户haozc

mysql> create database haozc;

mysql> create database mysql2;

mysql> create database ceshiku;

mysql> create database zrlog;

技术分享图片技术分享图片

7. hao1机器 同步.sql 库文件,恢复到创建对应名称库下 :

[root@hao-02 mysql]# mysql -uroot haozc < /tmp/haozc.sql

[root@hao-02 mysql]# mysql -uroot mysql2 < /tmp/mysql2.sql

[root@hao-02 mysql]# mysql -uroot ceshiku < /tmp/ceshiku.sql

[root@hao-02 mysql]# mysql -uroot zrlog < /tmp/zrlog.sql

8. 登录mysql执行下面命令 :

(master_password='haomima', master_log_file='haozc.000001',17.312节查看 )

技术分享图片

[root@hao-02 ~]# mysql -uroot

mysql> stop slave;

mysql> change master to master_host='192.168.223.128',master_user='repl', master_password='haomima', master_log_file='haozc.000001', master_log_pos=1102;

技术分享图片mysql> start slave;

9. 查看主从配置是否成功

mysql> show slave status\G

技术分享图片

10. hao1机器上,把之前锁定解锁(恢复写入的操作)

[root@hao-01 ~]# mysql -uroot -phaomima

mysql> unlock tables;

17.5 测试主从同步

配置参数

1. 服务器上 :

binlog-do-db=      //仅同步指定的库(其他库不同步)

binlog-ignore-db= //忽略指定库(其他库都同步)

2. 服务器上 :

replicate_do_db=   //(不常用)

replicate_ignore_db=   //(不常用)

replicate_do_table=   //(不常用)

replicate_ignore_table=   //(不常用)

replicate_wild_do_table=   //如aming.%, (支持通配符%)

replicate_wild_ignore_table=

测试主从:

1. hao1机器上操作 :

[root@hao-01 ~]# mysql -uroot -phaomima

切换数据

mysql> use haozc

查看数据所有表

mysql> show tables;

技术分享图片技术分享图片

2. hao2机器上操作 :

[root@hao-02 ~]# mysql -uroot

切换数据

mysql> use haozc

查看数据所有表

mysql> show tables;

技术分享图片技术分享图片

3. hao1机器删除(删除表结构,慎重使用):

mysql> drop table biao1;

4. hao2机器查看所有表是否还有删除的

mysql> show tables;

注意:

到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致。

https://www.2cto.com/database/201412/364479.html

17.1 MySQL主从介绍17.2 准备工作17.3 配置主17.4 配置从17.5 测试主从同步

标签:mysql主从配置

原文地址:http://blog.51cto.com/zhuneianxiang/2093883

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!