前言:有个大学同学,系统上跑的是销售客户数据及货款凭据,突然电话问我哪里有靠谱的硬盘修复行家,愿意重金修复数据,原来是系统突然崩溃了,一直以为双备份的数据居然根本没有启用,这下麻烦大了,客户欠了多钱是大事,后来跑去南京专业公司去修复,虽然通过各种技术手段,挽回了大部分数据,但是总有些损失,其实通过简单的MySQL主从复制(Master-Slave)功能,DB的热备还是能挽回的。这里不讲解数据库的高可用方案(keepalived 双主,MHA,PXC),只是简单的介绍一下MariaDB(MySQL)注册复制功能,来满足中小企业一般的数据热备问题
怎么安装mysql数据库,这里就不再表述了,在CentOS7下推荐使用MariaDB,在安装CentOS7系统时,可以选择安装MariaDB,关键是MariaDB完成兼容MySQL,使用方式,配置等等几乎一致
2、前提条件两台服务器上安装的MariaDB版本一致,数据库初始化等等一致,假设:
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