MySQL高可用性之Keepalived+MySQL(双主热备)

Posted 区域管理员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL高可用性之Keepalived+MySQL(双主热备)相关的知识,希望对你有一定的参考价值。

环境说明:

操作系统 IP地址 hostname 软件
centos 7 192.168.11.83 web01 mariadb+keepalived
centos 7 192.168.11.84 web02 mariadb+keepalived

准备工作:

(1)关闭两台服务器的防火墙、Selinux应用。

[root@web01 ~]#  setenforce 0
[root@web01 ~]#  systemctl stop firewalld
[root@web02 ~]#  setenforce 0
[root@web02 ~]#  systemctl stop firewalld

(2)两台服务器都安装好mariadb和keepalived

[root@web01 ~]#  yum -y install mariadb mariadb-server keepalived
[root@web02 ~]#  yum -y install mariadb mariadb-server keepalived

一、更改主服务器的配置文件;

[root@web01 ~]# vim /etc/my.cnf
[mysqld]
server-id=1  #设置服务器id,为1表示主服务器
log-bin=mysql-bin  #启动MySQ二进制日志系统
auto-increment-increment = 2   #字段变化增量值
auto-increment-offset = 1 #初始字段ID为1
slave-skip-errors = all #忽略所有复制产生的错误
binlog-ignore-db=mysql,information_schema #忽略写入binlog日志的库
:wq #保存退出
[root@web01 ~]# systemctl restart mariadb

二、更改从服务器的配置文件

[root@web02 ~]# vim /etc/my.cnf
[mysqld]
server-id=2  #设置服务器id,为2表示从服务器
log-bin=mysql-bin  #启动MySQ二进制日志系统
auto-increment-increment = 2   #字段变化增量值
auto-increment-offset = 1 #初始字段ID为1
slave-skip-errors = all #忽略所有复制产生的错误
binlog-ignore-db=mysql,information_schema #忽略写入binlog日志的库
:wq #保存退出
[root@web02 ~]# systemctl restart mariadb

三、配置主、从服务器两者一样

[root@web01 ~]# mysql -u root -p   #输入密码进入mariadb
MariaDB [(none)]> create database test; #创建数据库
MariaDB [(none)]> use test; #进入数据库内
MariaDB [(none)]>CREATE TABLE mybook (name char(15),price int,pages int);  #创建表单
MariaDB [(none)]>INSERT INTO mybook(name,price,pages) VALUES(linuxprobe, 60, 518); #向表单中添加数据
MariaDB [(none)]>SELECT * FROM mybook;  #查看表单中的数据
+------------+-------+-------+
| name       | price | pages |
+------------+-------+-------+
| linuxprobe |    60 |   518 |
+------------+-------+-------+
row in set (0.00 sec)

四、配置主服务器(创建同步数据库的账号)

MariaDB [test]> grant replication slave on *.* to admin@% identified by 123456;  #用户名为admin,密码为123456
MariaDB [(none)]> show master status; #记录File和Postion中的数据,等下需要填到从服务器配置里
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |     1097 | test         | mysql            |
+------------------+----------+--------------+------------------+
row in set (0.00 sec)
MariaDB [(none)]> grant replication slave on *.* to check@% identified by 123456;
MariaDB [(none)]> flush  privileges;
MariaDB [(none)]> change master to master_host=192.168.11.84, master_user=check, master_password=123456, master_log_file=mysql-bin.000004, master_log_pos=245;

以上是关于MySQL高可用性之Keepalived+MySQL(双主热备)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL高可用之KeepAlived+双主

优酷土豆资深工程师:MySQL高可用之MaxScale与MHA

MySQL 高可用性之keepalived+mysql双主

MySQL之keepalived高可用

MySQL高可用性之Keepalived+MySQL(双主热备)

MySQL高可用性之Keepalived+MySQL(双主热备)