mysql一主2从部署

mysql一主两从部署

1,安装mysql

通过rpm包在三台服务器上安装mysql

(1).卸载系统自带的mysql

rpm -qa | grep -i mysql

rpm -e --nodeps 要卸载的mysql

(2).安装

rpm包请修改相应的版本号

rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm --nodeps

rpm -ivh mysql-community-devel-5.7.44-1.el7.x86_64.rpm

4).查看初始密码

ggrep 'A temporary password' /var/log/mysqld.log | awk -F"root@localhost: " '{ print $2}'

(5).修改密码

/usr/bin/mysqladmin -u root -pjwsSTa-TL91Y password r9xhyH DcEFQE

d登录后执行更改命令

set password for root@localhost = password('9xhyHDcEFQE');

FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '9xhyHDcEFQE';

2,配置主服务器

1.编辑配置文件修改 MySQL 配置文件(/etc/my.cnf 或 /etc/mysql/my.cnf)以启用二进制日志和设置服务器 ID。

mysqld

server-id = 1

log-bin = /var/log/mysql/mysql-bin.log

binlog-format = STATEMENT

2.重启 MySQL 服务

sudo systemctl restart mysqld

或者

service mysqld start

3.创建复制用户登录 MySQL 并创建用于复制的用户。

密码自己根据情况设置

--CREATE USER 'replica_user'@'%' IDENTIFIED BY '9xhyHDcEFQE';

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON . TO 'replica_user'@'%';

FLUSH PRIVILEGES;

4.获取主服务器状态记录主服务器的二进制日志文件名和位置,以便从服务器配置时使用。

SHOW MASTER STATUS;

  1. 配置从服务器(slave2 slave3)
    1.编辑配置文件修改从服务器的 MySQL 配置文件以设置服务器 ID 和禁用二进制日志。
    ●与主库类似,设置server-id为不同的唯一值(如2、3)。

mysqld

server-id = 2

2.重启 MySQL 服务

sudo systemctl restart mysqld

3.配置从服务器登录 MySQL 并设置主服务器信息和复制用户。

CHANGE MASTER TO

MASTER_HOST='主服务器IP',

MASTER_USER='replica_user',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='记录的日志文件名',

MASTER_LOG_POS=记录的日志位置;

复制代码
 CHANGE MASTER TO
MASTER_HOST='10.0.5.33',
MASTER_USER='replica_user',
MASTER_PASSWORD='9xh*yH*DcEFQE',
MASTER_LOG_FILE='mysql-bin.000087',
MASTER_LOG_POS=1403;

4.启动复制启动从服务器的复制进程。

START SLAVE;

5.检查复制状态确认从服务器是否成功连接并开始复制。

SHOW SLAVE STATUS ;

  1. 验证和测试
    1.创建测试数据
    a.在主服务器上创建一些测试数据并验证这些数据是否在从服务器上同步。
    2.监控复制状态
    a.使用 SHOW SLAVE STATUS; 检查是否有错误和延迟。
  2. 故障排除
    ●检查网络连接: 确保主从服务器之间的网络连接正常。
    ●查看日志: 检查 MySQL 错误日志文件以诊断问题。
  3. 安全和维护
    1.配置防火墙
    a.确保主服务器允许从服务器的 IP 地址访问 MySQL 端口(默认 3306)。

报错信息

Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

处理办法从库执行

stop slave;

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=156;

start slave;

show slave status;

相关推荐
IT19955 小时前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
paopaokaka_luck8 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
警醒与鞭策9 小时前
Codex桌面版与Claude桌面版使用设置
android·unity·ai·性能优化
lzhdim9 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
传奇开心果11 小时前
【Compose Multiplatform跨端声明式UI实用技术】第19课:多平台部署与发布
android·kotlin
红尘伴蝶舞12 小时前
加密拦截器让抓包失效,我只能从 4KB 的 logcat 碎片里拼回 JSON
android·kotlin·ai编程
booboosui12 小时前
219 个还是 0 个:读不到微信界面时,我只加不删
android
这个DBA有点耶12 小时前
2026年国产数据库“实际用户增长最快”核验指南:口径优先级、可查数据与选型动作清单
数据库·mysql·架构
Android打工仔12 小时前
Compose 中何时该用 padding,何时该用 offset
android·android jetpack
二流小码农12 小时前
HarmonyOS开发助手,0代码让元服务从开发到上架
android·ios·harmonyos