MySQL主从搭建以及高可用

`我们这里做的是centos6的操作    其实6和7 的操作差不多 只是7上面的数据库换成了mariadb`

1. 下载MySQL 以及MySQL服务端

 yum -y install mysql mysql-server 

2.开启MySQL

 service restart mysqld 

3. 创建MySQL的用户并授权

1 create user  '用户'@'主机' identified by '123';
2 
3 grant  权限 on 级别(全局、库级别、表级别、列级别)  to  '用户'@'主机'  identified by '密码';
4 
5 flush privileges;

在主上的操作如下:

1. 关闭防火墙,如果我们不关闭防火墙的话以后的操作可能会有错误

 1  service iptables stop

 2  setenforce 0 

2. 安装MySQL客户端和服务端

1  yum -y install mysql mysql-server

3. 启动MySQL服务

 service mysqld start
 chkconfig mysqld on  (把MySQL服务设为开机自启) 

 4. 更改配置文件,开启二进制日志

 vim /etc/my.cnf
 	 在mysqld下增加内容:
		 server-id=1
		 log-bin=mysql-bin

 保存退出后重启MySQL
 service mysqld restart

 5.登录到本地mysql上,给从(slave)主机授权 同步日志的权限

 grant replication slave on *.* to 'tom'@'192.168.153.%' identified by '123';
 
 flush privileges;

 6.查看二进制日志和位置

 mysql> show master status;

 +------------------+----------+--------------+------------------+
 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
 +------------------+----------+--------------+------------------+
 | mysql-bin.000001 | 331 | | |
 +------------------+----------+--------------+------------------+

 1 row in set (0.00 sec)

主(master)配置完毕

从(slave)主机的操作

1.关闭防火墙
service iptables stop
setenforce 0

2.安装MySQL客户端和服务端
yum -y install mysql mysql-server

3.启动MySQL服务
service mysqld start
chkconfig mysqld on

4.更改配置文件,开启中继日志
vim /etc/my.cnf
在mysqld下增加内容:
server-id=2
relay-log=mysql-relay
保存退出后重启MySQL
service mysqld restart

登录本地mysql上,执行同步master二进制日志操作

 mysql> stop slave;	   \\停止slave同步
 mysql> change master to
 -> master_host='192.168.153.128',     \\master主机的ip地址
 -> master_user='tom',	  \\登录master主机的账号
 -> master_password='123',	 \\登录的密码
 -> master_log_file='mysql-bin.000001',       \\二进制日志文件
 -> master_log_pos=331;	     \\二进制日志文件的位置
 mysql> start slave;	    \\开启slave同步

查询slave状态
mysql> show slave status \G;

注意以下两个线程的状态都为Yes,说明配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

测试
在主上创建一个数据库,在从查看能够成功同步既是成功!

 

MySQL高可用
基础环境:
基于MySQL互为主从(双主、主主),请观看上面配置

主的操作
1.在keepalived主服务器上安装keepalived
yum -y install keepalived

2.编辑配置文件
vim /etc/keepalived/keepalived.conf

 1 内容更改如下:
 2 vrrp_instance VI_1 {
 3     state MASTER            \\初始状态:MASTER/BACKUP
 4     interface eth0            \\生成VIP的网卡设备
 5     virtual_router_id 51    \\广播的路由ID
 6     priority 100            \\优先级
 7     advert_int 1
 8     authentication {
 9         auth_type PASS
10         auth_pass 1111
11     }
12     virtual_ipaddress {
13         192.168.189.181        \\VIP地址
14     }
15 }
16 
17 virtual_server 192.168.153.181 3306 {    \\虚拟机服务器
18     delay_loop 6
19     nat_mask 255.255.255.0
20     protocol TCP
21 
22     real_server 192.168.153.128 3306 {    \\真实服务器
23         weight 1
24         notify_down  /root/kill.sh        \\当检测的真实服务器器3306端口不可用时,要执行的脚本
25         TCP_CHECK {
26             connect_timeout 3
27             connect_port 3306            \\检测的端口
28             nb_get_retry 3
29             delay_before_retry 3
30         }
31     }
32 }

3. 生成停止mysql的脚本
vim /root/kill.sh
内容:
#!/bin/bash
service keepalived stop
4.脚本保存退出后重启keepalived
service keepalived restart
5.查看VIP是否生成
ip a

备份主机的操作
操作和主基本一致,需要更改的有:初始状态、优先级、真实服务器ip地址

1.复制主的keepalived的配置文件到服务器

 scp 192.168.153.128:/etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf

2.编辑配置文件

vim /etc/keepalived/keepalived.conf

注意如下配置:

state BACKUP
interface eth0
priority 90

..
real_server 192.168.153.129 3306

3. 生成停止mysql的脚本
vim /root/kill.sh
内容:
#!/bin/bash
service keepalived stop

4.更改完毕后重启keepalived
service keepalived restart

测试

停止主的mysql查看 VIP是否漂移到备份主机上,如成功飘逸则是配置成功

posted @ 2019-12-03 20:49  相磊  阅读(466)  评论(0编辑  收藏  举报