MySQL主从介绍准备工作准备工作配置从测试主从同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL主从介绍准备工作准备工作配置从测试主从同步相关的知识,希望对你有一定的参考价值。

17.1 mysql主从介绍

  • MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步;
  • MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
  • 主从过程大致有3个步骤
    • 主将更改操作记录到binlog里
    • 从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里
    • 从根据relaylog里面的sql语句按顺序执行
  • 主上有一个log dump线程,用来和从的I/O线程传递binlong
  • 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个sql线程用来把relaylog里面的sql语句落地
    MySQL主从原理图:
    技术分享图片

17.2 准备工作

  • 安装mysql

备注:

#设置开机启动
[[email protected] ~]# chkconfig mysqld on

请查阅之前的文章:http://blog.51cto.com/3622288/2056837 12.2小节

17.3 配置主

  • 修改my.cnf
[[email protected] ~]# vi /etc/my.cnf

#增加server-id=130和log_bin=taoyuan
socket=/tmp/mysql.sock #如下增加
server-id=12 #可以自定义,如设定为IP地址192.168.0.12 中的12
log_bin=taoyuan
  • 修改完配置文件后,启动或重启mysqld服务
[[email protected] ~]# /etc/init.d/mysqld restart;

#查看文件
[[email protected] ~]# cd /data/mysql/

[[email protected] mysql]# ls -lt
-rw-rw----  1 mysql mysql       34 1月  23 16:57 taoyuan.index
-rw-rw----  1 mysql mysql      120 1月  23 16:57 taoyuan.000002
-rw-rw----  1 mysql mysql      143 1月  23 16:57 taoyuan.000001
#上述文件,必须有,不然主从无法完成
  • 把mysql可备份并恢复成taoyuan库,作为测试数据
    • mysqldump -uroot mysql > /tmp/mysql.sql
    • mysql -uroot -e "create database taoyuan"
    • mysql -uroot taoyuan < /tmp/mysql.sql
  • 创建用作同步数据的用户
#创建用户
mysql> grant replication slave on *.* to ‘repl‘@‘192.168.0.10‘ identified by ‘taoyuan‘;
Query OK, 0 rows affected (0.00 sec)

#锁表,防止再次写入数据
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.03 sec)

#记住位置
mysql> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| taoyuan.000002 |   660574 |              |                  |                   |
+----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

17.4 配置从

  • 修改配置文件
[[email protected] ~]# vi /etc/my.cnf
#增加server-id 跟主不一样 可以设置成10
#log_bin 不需要设置,主才需要生成二进制文件,从不用

#重启服务
[[email protected] ~]# /etc/init.d/mysqld restart
  • 数据同步
#采用复制虚拟机操作,如果没有可以用如下的命令进行同步
scp 192.168.0.12:/tmp/*.sql /tmp/

#恢复库
mysql> create database taoyuan;
Query OK, 1 row affected (0.00 sec)

mysql> create database blog;
Query OK, 1 row affected (0.01 sec)
  • 实现主从
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host=‘192.168.0.12‘, master_user=‘repl‘, master_password=‘taoyuan‘, master_loog_file=‘taoyuan.000002‘, master_log_pos=660574;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
#填写show master status; 显示的信息

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
  • 查看主从是否配置成功
mysql> show slave status\G

#还需到主上执行 unlock tables;

17.5 测试主从同步

  • 主上 mysql -uroot taoyuan
  • select count(*) from db;
  • truncate table db;
  • 到从上mysql -uroot aming;
  • select count(*) from db;
  • 主上继续drop table db;
  • 从上查看db表

  • 几个配置参数
    • 主服务器上
    • binlog-do-db= //仅同步指定的库
    • binlog-ignore-db= //忽略指定库
    • 从服务器上
    • replicate_do_db=
    • replicate_ignore_db=
    • replicate_do_table=
    • replicate_ignore_table=
    • 如下两个常用
    • replicate_wild_do_table= //如taoyuan.%,支持通配符%
    • replicate_wild_ignore_table=

mysql主从配置uuid相同错误解决

配置mysql主从时,由于是拷贝的mysql目录,导致主从mysql uuid相同, Slave_IO无法启动,报错信息如下:

The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决办法:修改mysql data 目录下auto.cnf 文件中uuid的值,使两台mysql不同即可,修改后重启mysql服务。

以上是关于MySQL主从介绍准备工作准备工作配置从测试主从同步的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从介绍准备工作配置主配置从测试主从同步

MySQL主从介绍准备工作配置主配置从测试主从同步

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

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

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

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