mysql的主从复制

时间:2022-09-15 11:09:32

一、主从复制目的:

主从服务器设置的稳健性得以提升,如果主服务器发生故障,可以把本来作为备份的从服务器提升为新的主服务器。

二、场景描述

主服务器:IP地址192.168.62.149, mysql已经安装,无用户数据。

从服务器:IP地址192.168.62.146,mysql已经安装。

主服务器的mysql服务已经正常启动。

三、
主从复制配置

主服务器上进行操作

1、创建用户并授权

1) mysql -uroot -p密码    

2) mysql>grant replication slave on *.* to rep1@192.168.62.146 identified by '222222';    

3) mysql>flush privileges;    

2、查询主数据库的状态

1) mysql> show master status;    

记下File以及Position的值,在后面进行从服务器操作的时候需要使用。(此次实验的File为mysql-bin.000006,pos为333)

配置从服务器

1、修改从服务器的配置文件/etc/my.cnf

使得“server-id=2”,并确定这个id没有被别的mysql服务所使用。

2、启动mysql服务(本地环境用的WNMP一键安装包,重启服务命令为:/root/lnmp restart)

mysqld_safe --user=mysql &    

3、mysql登录并执行同步的sql语句,最后并启动slave

1) #mysql -uroot -p密码   

2)mysql> change master to master_host='192.168.62.149',master_user='rep1',master_password='222222',master_log_file='mysql-bin.000006',master_log_pos=333;    

3)mysql> start slave;    

就启动了slave同步功能。

4、主从同步检查

执行如下语句

1)mysql>show slave status\G    

来检查从服务器的同步情况,一个正常的输出结果应该如下面的形式:

Slave_IO进程以及slave_SQL进程都必须正常运行,在状态输出中表现为:“slave”;否则都是不正确的状态(如一个值是Yes,另一个是No则不行)。

5、主库存在数据情况下的主从复制
上述内容可以在主库无数据的情况下进行主从复制同步,当主库存在数据时需要做以下处理:

主库(已经进行授权操作)

1)mysql>flush tables with read lock;                    //主数据库锁表操作,不让数据再进行写入动作。

2)mysql>show master status;                            //记下File以及Position的值,以备从服务器使用。

3)把主服务器的数据文件复制到从服务器

mysqldump -u用户名 -p密码  数据库名 > 文件名       

如:mysqldump -uroot -p111111 first_db > /mydata/first_db.sql

4)将此文件交给从库,这里用的scp命令

scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>

如:scp /mydata/first_db.sql root@192.168.62.146:/mydata

5)mysql>unlock tables;                                    //取消主数据库锁定


从库

1)mysql -u用户名 -p密码

2)建立同名数据库

mysql> create database first_db;

3)导入之前得到的主库数据库备份文件

mysql -u用户名 -p密码 first_db < /mydata/first_db.sql

4)导入后再进行同步主库命令

mysql> change master to master_host='192.168.62.149',master_user='rep1',master_password='222222',master_log_file='FILE名',master_log_pos=POSITION值;   

其中的FILE名和POSITION值为主库操作第2步获得的

5)开启同步

mysql> start slave;

6)同步检查