MySQL主从复制
发布日期:2021-05-15 06:52:21 浏览次数:17 分类:精选文章

本文共 1997 字,大约阅读时间需要 6 分钟。

MySQL 主从复制服务器配置指南

作为数据库管理员,我决定详细记录一下mysql主从复制的配置步骤。主从复制是一种高效的数据库管理方式,可以帮助我们有效地管理数据库事务,实现数据的主从同步。

1. 主从服务器基本配置

第一步:确保版本一致

确保主从服务器的mysql版本一致。你可以通过以下命令查看版本:

mysql --version

如果版本不一致,先升级到最新版本。

第二步:初始化数据库并启动mysql

初始化数据库时,可以选择自动启动mysql。执行以下命令:

/etc/init.d/mysql start --sysvinit

第三步:设置root密码

为避免安全隐患,建议设置root密码。执行以下命令并根据提示设置密码:

mysqlctl setrootpassword

2. 配置主服务器

添加Binlog参数

修改my.cnf文件,开启二进制日志:

nano /etc/my.cnf

添加以下参数:

[mysqld]log-bin=mysql-binserver-id=1

3. 配置从服务器Slave

修改Slave配置

修改Slave的my.cnf文件,将其转换为从服务器。执行以下命令:

nano /etc/my.cnf

给my.cnf加上以下参数:

[mysqld]log-bin=mysql-binserver-id=2

4. 启动并重启数据库

以下命令用于重启数据库服务:

/etc/init.d/mysql restart

5. 创建replication账户并授权

在主服务器上创建账户

使用root账户登录,执行以下命令创建一个专门用于复制的账户:

mysql -uroot -pmttang

添加如下权限:

GRANT REPLICATION SLAVE ON *.* TO 'syncuser'@'192.168.145.226' identified by 'secret123';

6. 检查主服务器状态

确认主服务器的状态是否正常:

mysql -uroot -pSHOW MASTER STATUS\G

期望输出显示:Slave_IO_State: Waiting for master to send event

7. 配置从服务器Slave

键配置参数

在从服务器上启动Slaving服务,执行以下命令:

mysql -uroot -pCHANGE MASTER TO MASTER_HOST='192.168.145.222',MASTER_USER='syncuser',MASTER_PASSWORD='secret123',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=308;

启动replication服务:

START SLAVE;

8. 检查从服务器状态

确保从服务器的IO和SQL服务都正常运行。执行以下命令:

mysql -uroot -pSHOW SLAVE STATUS\G

如果看到Slave_IO_Running: YesSlave_SQL_Running: Yes,说明配置成功。


使用Shell脚本监控Slave状态

为了确保主从复制运行稳定,可以编写一个简单的Shell脚本来监控Slave的状态。以下是一个示例脚本:

#!/bin/bash638port=3306master_host=192.168.145.222sync_user=syncuserstorage_host=slave1.example.comalarm_recipients="admin@example.com"# 检查Slave状态mysql -h $master_host -u $sync_user -p --execute "SHOW SLAVE STATUS"if [ $? != 0 ]; then    echo "主从服务器状态异常,请检查Slave服务状态。"    mail -s "主从复制监控警报" ${alarm_recipients}fi# 检查数据库存活连接mysql -h $storage_host -u root -p -e "SELECT 1"if [ $? != 0 ]; then    echo "数据库存活连接异常,请及时处理。"    mail -s "数据库存活连接异常" ${alarm_recipients}fi

###Shell脚本调用说明

  • 保存脚本为check_slave_status.sh
  • 添加脚本执行权限:
    chmod 755 check_slave_status.sh
  • 定期运行脚本,可以使用crontab定时任务调度。
  • 这将在检测到主从服务器状态异常时,发送短信警报,帮助你及时发现问题并进行修复。

    上一篇:SpringCloud
    下一篇:ajax跨域请求

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月08日 01时01分12秒