安装部署mysql主从复制环境+检测脚本

目录

安装部署mysql主从复制环境

主从复制的准备操作

修改mysql配置文件

修改配置mysql的主配置文件  (主数据库)

修改配置mysql的主配置文件  (从数据库)

主从服务检测脚本

前期准备工作

shell脚本


安装部署mysql主从复制环境

实验环境:centos6

实验机器:2台

 

主从复制的准备操作

安装部署两台或多台mysql数据库

yum -y install mysql mysql-server

关闭防火墙和selinux

service iptables stop     #关闭防火墙
setenforce 0              #临时关闭selinux

查看mysql的版本信息

mysql -V         #输出mysql的版本信息

启动mysql服务,查看系统中是否存在mysql进程,并查看mysql的端口号

service mysqld start    #centos6中MySQL启动使用mysqld

ss -anp |grep mysql     
#ss命令可以用来获取socket统计信息,能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效

修改mysql配置文件

      # 以下操作在主服务器上

修改配置mysql的主配置文件  (主数据库)

1.mysql主配置文件路径
    vim /etc/my.cnf

2.配置文件内添加以下内容

    server-id=1             # 主数据库id为1 主从值不得相同
    log_bin=mysql-bin       # 开启二进制日志

    :wq    #保存退出

3.重启mysql服务

    service mysqld restart

查看mysql二进制日志信息

      进入mysql

      mysql -uroot    # 原始情况下mysql中root默认的密码为空

执行的命令;
show master status;

在mysql中新建数据库

create database name; 

在mysql中新建用户并授权

grant all on *.* to 'sjl'@'%' identified by '123';

解释:   在master的数据库服务器中建立一个复制的账户,每个slave使用该账户链接master来进行复制,设置所有权限(根据具体情况自定)。

上面创建了一个sjl用户,密码是123。只允许在所有段的ip地址的登录。

 

修改配置mysql的主配置文件  (从数据库)

1. mysql主配置文件路径
    vim /etc/my.cnf

2.配置文件内添加以下内容

    server-id=2             # 主数据库id为1 主从值不得相同
    relay_log=relay-logs    # 开启中继日志,可以自定义目录,mysql用户有权限即可

:wq    #保存退出

3.重启mysql服务

    service mysqld restart

# 以下内容在数据库内操作

查看中继日志的启动状态

show global variables like '%relay%';

连接master服务器

change master to 
master_host='11.11.11.12',
master_user='sjl',
master_password='123',
master_log_file='master-bin.000001',
master_log_pos=106;

选项解释:

master_host:master 服务器IP

master_user:master 服务器授权用户,也就是 Master 前面创建的那个用户

master_password:master 服务器授权用户对应的密码

master_log_file:master binlog 文件名

master_log_pos:master binlog 文件中的 Postion 值

手动启动复制线程:

start slave;

mysql主从效果图

测试

自行测试.

主数据库创建一个数据库,

从数据库查看

主从服务检测脚本

前期准备工作

安装邮件报警命令 mail

yum -y install mailx

配置 
vi /etc/mail.rc  在文件尾加上如下配置 

set from=*****@163.com  # 用那个邮箱发送
set smtp=smtp.163.com
set smtp-auth-user=*****@163.com  
set smtp-auth-password=****   # 不是邮箱密码,是授权码
set smtp-auth=login

测试 

[root@localhost ~]# echo "MySQL"|mail -s  mysql ****0@qq.com
            内容 | mail -s 标题 接收邮箱

shell脚本

#!/bin/bash
# 数据库登录
mysql="mysql -uroot -p1234"
while true
do
    # 检测关键字
    array=($($mysql -e "show slave status\G"|egrep '_Running:|Behind_Master|Last_SQL_Errno'|awk '{ print $NF }'))
        # 判断关键字
        if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" == "0" ]
        then
            # 运行正常的输出
            echo "MySQL 主从正常"
        else
            # 运行失败,发送报警信息
            echo "MySQL 主从服务 报错 管理员及时处理"|mail -s  mysql ******@qq.com
        break
    fi
    sleep 10
done

测试脚本运行效果

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是部署MySQL主从复制和读写分离脚本的步骤: 1.安装MySQL 2.配置MySQL主从复制,具体步骤如下: (1)给主服务器创建一个帐户并授权:GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password'; (2)在主服务器上开启binlog:编辑my.cnf文件,在[mysqld]标签下增加以下配置项: log-bin=mysql-bin server_id=1 (3)在主服务器上创建一个备份库并导入数据: CREATE DATABASE backup_db; mysqldump -u root -p --master-data=1 --single-transaction --databases db_name >> db_name.sql (4)查看主服务器状态并记录下文件名和位置: SHOW MASTER STATUS; (5)在从服务器上创建一个新数据库: CREATE DATABASE db_name; (6)在从服务器上配置slave,也就是将主服务器上的操作同步到从服务器上: CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000XXX', MASTER_LOG_POS=XXXXXXX; START SLAVE; 可以通过命令SHOW SLAVE STATUS\G来查看从服务器的状态。 3.配置MySQL读写分离,具体步骤如下: (1)安装MySQL Proxy并配置 (2)在MySQL Proxy的配置文件中设置主从服务器的地址和端口号: proxy-backend-addresses = { 'master_ip:3306','slave_ip1:3306','slave_ip2:3306'} (3)在MySQL Proxy的脚本文件中添加读写分离规则: function read_write_splitting() local server server = proxy.backends[1] if proxy.connection.server == server then -- Read-write connections go to master proxy.connection.backend_ndx = 1 else -- Read-only connections go to a random slave proxy.connection.backend_ndx = math.random(2,#proxy.backends) end end proxy.global.backends[1]:set_max_idle_time(60) (4)启动MySQL Proxy 以上就是部署MySQL主从复制和读写分离的脚本,请根据实际情况进行配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值