MySQL主从配置

MySQL主从介绍

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

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

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

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

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

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

MySQL主从原理图

MySQL主从配置

 

  1. 主服务器上有一个log dump线程,用来和从的I/O线程传递binlog;
  2. 从服务器上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地。

MySQL主从配置

主配置(安装完mysql的虚拟机)

基础配置:

修改my.cnf,增加server-id=130和log_bin=linux1

# vi /etc/my.cnf

编辑配置文件

MySQL主从配置

 重启mysqld服务

# /etc/init.d/mysqld restart

备份mysql库(加入环境变量)

# mysqldump -uroot mysql > /tmp/mysql.sql

# export PATH=$PATH:/usr/local/mysql/bin/

创建一个库保存数据

# mysql -uroot -e "create database lfb"

# mysql -uroot lfb < /tmp/mysql.sql

将mysql库恢复成新建的库,作为测试数据

数据库配置

进入数据库(没有密码)

# mysql -uroot

创建用作同步数据的用户并赋予权限

mysql> grant replication slave on *.* to 'repl'@192.168.131.40 identified by 'password';

将表锁住,保持表内数据不变

mysql> flush tables with read lock;

显示主机状态

mysql> show master status;

3.2从配置(安装完mysql的虚拟机)

基础配置

编辑配置文件

# vi /etc/my.cnf

重启mysqld服务

# /etc/init.d/mysqld restart

在主上将文件拷贝到从上,并在从上查看文件大小是否一致

# scp /tmp/mysql.sql root@192.168.131.40:/tmp/

创建一个和主一样的库

# mysql -uroot -e "create database lfb"

将文件内容导入库

# mysql -uroot lfb < /tmp/mysql.sql

数据库配置

进入数据库(没有密码)

# mysql -uroot
mysql> stop slave;
mysql> mysql>  change master to master_host='192.168.131.30',master_user='repl',master_password='password',master_log_file='linux1.0000001’,master_log_pos=645213;
mysql> start slave;

在主上执行解锁表

mysql> unlock tables;

任务4. 主从同步及相关配置参数

主从同步验证:

从服务器上操作并执行命令(防火墙关闭):

mysql> show slave status\G

若出现Yes,如上图状态,即表示主从配置正常。

其中,主服务器主要配置参数如下:

从服务器主要配置参数如下:

任务5.测试主从

5.1主服务器上

在主上进入数据库

# mysql -uroot

mysql> use lfb;

mysql> select count(*) from db;

mysql> truncate table db;

5.2从服务器上

在从上进入数据库

# mysql -uroot lfb

mysql>  select count(*) from db;

上一篇:linux mysql导入导出sql文件


下一篇:mount状态下表空间情报试验