MariaDB(MySQL)主从复制(Master-Slave)简单实践

MariaDB(MySQL)主从复制(Master-Slave)简单实践

首页动作格斗DB-System更新时间:2024-04-27

前言:有个大学同学,系统上跑的是销售客户数据及货款凭据,突然电话问我哪里有靠谱的硬盘修复行家,愿意重金修复数据,原来是系统突然崩溃了,一直以为双备份的数据居然根本没有启用,这下麻烦大了,客户欠了多钱是大事,后来跑去南京专业公司去修复,虽然通过各种技术手段,挽回了大部分数据,但是总有些损失,其实通过简单的MySQL主从复制(Master-Slave)功能,DB的热备还是能挽回的。这里不讲解数据库的高可用方案(keepalived 双主,MHA,PXC),只是简单的介绍一下MariaDB(MySQL)注册复制功能,来满足中小企业一般的数据热备问题

1、安装

怎么安装mysql数据库,这里就不再表述了,在CentOS7下推荐使用MariaDB,在安装CentOS7系统时,可以选择安装MariaDB,关键是MariaDB完成兼容MySQL,使用方式,配置等等几乎一致

2、前提条件

两台服务器上安装的MariaDB版本一致,数据库初始化等等一致,假设:

  1. 192.168.1.112(Master)
  2. 192.168.1.111(Slave)
3、Master配置

1、修改MariaDB配置文件

/etc/my.cnf.d/server.cnf [mysqld] #开启二进制日志 log-bin=mysql-bin #标识唯一id(必须),一般使用ip最后位 server-id=112 #不同步的数据库,可设置多个 binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=mysql #指定需要同步的数据库(和slave是相互匹配的),可以设置多个 binlog-do-db=mydb

2、重启MariaDB

systemctl restart mariadb; 重启MariaDB

3、进去MariaDB设置允许从库获得主库日志

mysql -u root -p #给从库放权限 mysql>GRANT FILE ON *.* TO 'mysync'@'192.168.1.111' IDENTIFIED BY 'root';  #创建用户 一般不用root帐号 新创建一个用于同步的用户 mysql>GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'192.168.1.111' IDENTIFIED BY 'root'; #修改用户权限 mysql>select host,user,password from mysql.user;  #查看是否修改成功 mysql>FLUSH PRIVILEGES;   #刷新

4、重启MariaDB,登录MariaDB,查看主库信息

systemctl restart mariadb; mysql> show master status;

显示内容

------------------ ---------- -------------- ---------------------------------- -------------------

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

------------------ ---------- -------------- ---------------------------------- -------------------

| mysql-bin.000002 | 1449 | mydb | information_schema,performance_schema,mysql | |

------------------ ---------- -------------- ---------------------------------- -------------------

1 row in set (0.00 sec)

注:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对

4、Slave的配置

1、修改MariaDB配置文件

/etc/my.cnf.d/server.cnf [mysqld] #开启二进制日志(可以不配置)log-bin=mysql-bin server-id=111 binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=mysql #与主库配置一致 replicate-do-db=mydb replicate-ignore-db=mysql log-slave-updates slave-skip-errors=all slave-net-timeout=60

2、重启MariaDB,登录MariaDB

systemctl restart mariadb; 重启MariaDB

#关闭Slave

mysql> stop slave; #设置连接主库信息 mysql> change master to master_host='192.168.1.112',master_user='mysync',master_password='root',master_log_file='mysql-bin.000002', master_log_pos=1449;

#开启Slave

mysql> start slave; mysql> show slave status \G; Slave_IO_Running: Yes  //显示yes为成功 Slave_SQL_Running: Yes  //显示yes为成功,如果为no,一般为没有启动master

简单的MariaDB(MySQL)主从复制(Master-Slave)完成,希望对中小运维有所帮助。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved