虚拟机实现mysql主从同步简单介绍

  • 一、从服务器主动同步主服务器
  • 1 、主从服务器都安装服务 - 开启服务
  • 2 、修改配置文件:vim /etc/my.cnf
  • 3 、进入数据库(主服务器 33)
  • 4 、进入数据库(从服务器 44)
  • 5 、确定从主服务器同步
  • 6 、进入数据库(主服务器 33)
  • 二、同步主库已有数据到从库
  • 1、停止主库的数据更新操作
  • 2、新开终端,生成主数据库的备份(导出数据库)
  • 3、在从库将备份将从主库拷贝过来
  • 4、主库解锁
  • 5、停止从库slave
  • 6、新建数据库test
  • 7、导入数据
  • 8、查看从库已有该数据库和数据


一、从服务器主动同步主服务器

首先定义两台服务器
主服务器:192.168.203.33
从服务器:192.168.203.44

1 、主从服务器都安装服务 - 开启服务

yum -y install mysql mysql-server
service mysqld start
mysqladmin -uroot password 123

2 、修改配置文件:vim /etc/my.cnf

主、从都需添加

log-bin=mysql-bin 开起二进制日志文件
server-id=xx 申明本台 mysql 服务器 ID

主服务器:

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_mysql


从服务器:

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_数据库_02


修改了配置文件,一定重新启动:

service mysqld restart

3 、进入数据库(主服务器 33)

创建从服务器授权用户:

grant replication slave on *.* to ' 用户 '@'%' identified by ' 密码 ';
命令:grant all on *.* to 'cong44'@'%' identified by '123';
show master status; 查看二进制文件名,以及大小

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_数据库_03

4 、进入数据库(从服务器 44)

登录

msyql:mysql -uroot -p

语 法 :

change master to master_host=’ 主 服 务 器 IP’,master_user=’ 用 户’,master_password=’ 密码 ‘,master_log_file=’ 二进制文件’,master_log_pos= 文件空间大小 ;

命令:

change master to master_host='192.168.203.33',master_user='cong44',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=246;

5 、确定从主服务器同步

show slave status\G; 查看同步服务开启状态
start slave; 如果同步状态没有启动,则开启
Slave_IO_Running: Yes 如果失败,是授权失败了,重新授权
Slave_SQL_Running: Yes 如果失败,是因为二进制文件不一致导致的,重新查看一下主服
务器的二进制文件大小,再授权一次就可以了,授权的时候,关闭同步服务:stop slave;

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_数据库_04

6 、进入数据库(主服务器 33)

创建数据库:create database yunjisuan;
选择数据库:use yunjisuan;
创建表:create table student ( id int primary key auto_increment, name varchar(10) );
插入数据:insert into student values (null,‘qiang’);

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_mysql_05

再进入从服务器 mysql 服务 44:

就可以看到有另一个数据库 yunjisuan,并存在一张表,student,查询显示了,主服务器

中插入的数据,表示主从服务器,设置成功

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_mysql_06

二、同步主库已有数据到从库

1、停止主库的数据更新操作

flush tables with read lock;

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_07

2、新开终端,生成主数据库的备份(导出数据库)

mysqldump -uroot -p test > test.sql
输入密码

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_08

3、在从库将备份将从主库拷贝过来

scp root@20.20.24.10:/root/test.sql /root/

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_09


虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_10

4、主库解锁

unlock tables;

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_11

5、停止从库slave

stop slave;

虚拟机mysql连接本地mysql修改权限 虚拟机 mysql_服务器_12

6、新建数据库test

create database test default charset utf8;

7、导入数据

mysql -u root -p 123456 test > test.sql

8、查看从库已有该数据库和数据

show databases;