Linux配置mariadb(mysql)主从数据库同步(三)(centos7)

主服务器:IP:192.168.1.150
从服务器:IP:192.168.1.160
mariadb(mysql)版本:mariadb-5.5.64-1.el7.x86_64

一、主服务器相关配置

1、登录主服务器mariadb(mysql),创建测试数据库newdb,退出mariadb(mysql)。

mysql 	-uroot	 -p
MariaDB [(none)]>	create  database  newdb;	
MariaDB [(none)]>    exit;

2、修改/etc/my.cnf文件,[mysqld]下面添加以下参数,保存配置文件。

vi 	/etc/my.cnf
server-id=1  
log-bin=mysql-bin  #启动MySQL二进制日志系统
binlog-do-db=newdb  #需要同步的数据库
binlog-ignore-db=information_schema,performance_schema,mysql  #不需要同步的数据库

在这里插入图片描述

3、重启mariadb(mysql)服务。

systemctl restart  mariadb

4、登录mariadb(mysql)。

mysql   -uroot -p 

5、只授权远程计算机’192.168.1.160’使用账户new,密码new,登录本机数据库,对数据库的所有库和所有表只能进行复制操作(. :所有库的所有表)。

MariaDB [(none)]> grant  replication slave  on  *.* to 'new'@'192.168.1.160' identified  by  'new';

6、刷新权限。

MariaDB [(none)]>	flush privileges;

8、关闭所有打开的表锁定数据库以防止写入数据。

MariaDB [(none)]>	flush    tables    with  read  lock;

9、退出mysql。

MariaDB [(none)]> exit;

10、使用root账户及密码导出newdb数据库(new账号无此权限)。

mysqldump -uroot  -pserver7  --databases  newdb  > /root/newdb.sql;

11、使用scp命令传输数据库文件newdb.sql到从服务器/root根目录。

scp  	/root/newdb.sql	 root@192.168.1.160:/root

12、登录数据库,解锁数据库。

mysql -uroot -p
MariaDB [(none)]>	unlock    tables;

13、查看master状态(注意File与Position项,配置slave从服务器需要这两项参数)

MariaDB [(none)]>	show master  status    	\G

在这里插入图片描述

二、从服务器相关配置

1、修改/etc/my.cnf文件,在[mysqld]下添加以下参数,保存配置。

vi /etc/my.cnf
server-id=3  #设置从服务器id,必须与主服务器不同
log-bin=mysql-bin  #启动MySQ二进制日志系统
replicate-do-db=newdb #需要同步的数据库名
replicate-ignore-db=information_schema,performance_schema,mysql  #不需要同步的数据库名

在这里插入图片描述
2、重启mysql服务。

systemctl restart  mariadb

3、导入主服务器复制过来的数据库。

mysql  -uroot -pclient7a  	<	 /root/newdb.sql

4、配置主从同步(master_log_file与master_log_pos是主服务器master状态下的File与Position)。

mysql -uroot -p
MariaDB [(none)]>	show databases; 	#查看导入数据库
MariaDB [mysql]>	stop slave;	 #停止slave
MariaDB [mysql]>	change master to master_host='192.168.1.150',master_user='new',master_password='new',master_log_file='mysql-bin.000022',master_log_pos=245;  	#配置主从同步参数
MariaDB [mysql]>	start slave;	 #开启slave

在这里插入图片描述
5、查看slave状态。

MariaDB [mysql]>	show slave status 	\G

在这里插入图片描述

注意:Slave_IO_Running: Connecting 和Slave_SQL_Running: Yes 这两项必须为Yes和Yes,Master_Log_File、Read_Master_Log_Pos要与主服务器master状态下的File,Position相同。如果都是正确的,则说明配置成功!

6、show slave status \G,部分参数含义解析。

参数含义
Master_Host: 192.168.1.200maeter端主机IP。
Master_User: new用于连接maeter端的用户。
Master_Port: 3306maeter端监听的端口。
Connect_Retry: 60中从连接失败,重试时间间隔。
Master_Log_File: mysql-bin.000001I/O线程读取的master二进制日志文件的名称。
Read_Master_Log_Pos: 1339I/O线程已读取的master二进制日志文件的位置。
Relay_Log_File: mariadb-relay-bin.000002线程读取和执行的中继日志文件的名称。
Relay_Log_Pos: 1241线程已读取和执行的中继日志文件的位置。
Relay_Master_Log_File: mysql-bin.000001sql线程执行的master二进制日志文件的名称。
Slave_IO_Running: YesI/O线程是否被启动并成功地连接到主服务器上。
Slave_SQL_Running: Yessql线程是否被启动。
Replicate_Do_DB: newdb指定的同步的数据库列表。
Replicate_Ignore_DB: information_schema,performance_schema,mysql,test指定的不需要同步的数据库列表。
Replicate_Do_Table:指定的同步的表列表。
Replicate_Ignore_Table:指定的不需要同步的表列表。
Seconds_Behind_Master: 0salve端sql线程和I/O线程之间的时间差距,单位为秒常被用于主从延迟检查方法之一。

三、测试主从服务器同步数据

1、主服务器操作数据库newdb,新建表stu,插入数据。在Master服务器的任何修改都会通过事务日志提交到Slave服务器,测试过程如下。

mysql -uroot -p
MariaDB [(none)]>	use newdb;
MariaDB [newdb]>	create table stu (age int, name char(40) ) ;
MariaDB [newdb]>	show tables ;
MariaDB [newdb]>	insert into stu values (19, '李明') ;
MariaDB [newdb]>	insert into stu values (20, '王力') ;
MariaDB [newdb]>	insert into stu values (30, '赵亮') ;
MariaDB [newdb]>	select * from stu;

              主服务器                                      从服务器

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值