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是否漂移到备份主机上,如成功飘逸则是配置成功