文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MYSQL主从(主备)部署

2023-10-23 15:32

关注

一、环境准备

主机规划,示例环境用配置1主2从

类型 服务器IP 数据库版本
Master 192.168.100.1 Mysql:5.7.27
Save1 192.168.100.2 Mysql:5.7.27
Save2 192.168.100.3 Mysql:5.7.27

服务器环境准备

1 安装docker

在3台服务器上安装docker,安装过程跳过

2 mysql镜像上传

......

二、安装

创建数据和配置文件挂载目录(3台服务器都需要操作)

$ mkdir -p /data/containers/mysql/data

$ mkdir -p /data/containers/mysql/conf

$ chmod -R 755 /data/containers/mysql

将配置文件my.cnf上传到/data/containers/mysql/conf目录下(3台服务器都需要操作)

$cat my.cnf

-------------------------------

[mysqld]

server_id = 1

# 主从复制设置

log-bin = mysql-bin # 开启mysql binlog功能

binlog_format = ROW # binlog记录内容的方式,记录被操作的每一行

binlog_row_image = minimal # 对于binlog_format = ROW模式时,减少记录日志的内容,只记录受影响的列

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

default-time_zone = '+8:00' #时区设置

lower_case_table_names=1 # 是否对sql语句大小写敏感,1表示不敏感

max_connections=10240 # 最大连接数

character-set-server=utf8mb4 # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)

[client]

default-character-set=utf8

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

---------------------------------

注意:以上配置仅供参考;实际配置需要根据项目需求进行调整

修改从服务器save1和save2的server-id配置

1 在save1服务器上执行命令

$ sed -i s/"server-id = 1"/"server-id = 2"/g /data/containers/mysql/conf/my.cnf

2 在save2服务器上执行命令

$ sed -i s/"server-id = 1"/"server-id = 3"/g /data/containers/mysql/conf/my.cnf

启动数据库

1 启动master数据库,在master服务器上执行命令

$ docker run -p 3306:3306 --name mysql_master --restart=always \

-v /data/containers/mysql/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

2 启动save1数据库,在save1服务器上执行命令

$ docker run -p 3306:3306 --name mysql_save1 --restart=always \

-v /data/containers/mysql/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

3 启动save2数据库,在save2服务器上执行命令

$ docker run -p 3306:3306 --name mysql_save2 --restart=always \

-v /data/mysql_containers/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

至此3台服务器已经启动完成,数据库账号:root 密码 :123456

三、 配置主从

master服务器配置

1 登录数据库

$ docker exec -it mysql_master bash

$ mysql -uroot -p

输入密码123456登录数据库

2 master数据库授权同步账户(在数据库内操作)

$ GRANT REPLICATION SLAVE ON *.* TO 'save'@'%' IDENTIFIED BY '123456';

$ FLUSH PRIVILEGES;

备注: %是指定用户登录IP白名单,‘%’表示全部IP;具体可以根据现场环境设置。

3 清空Master日志,查看数据库记录二进制开始文件位置(在数据库内部操作)

$ RESET MASTER;

$ SHOW MASTER STATUS;

save1服务器配置

1 登录数据库

$ docker exec -it mysql_save1 bash

$ mysql -uroot -p

输入密码123456登录数据库

2 配置同步(在数据库内操作)

$ CHANGE MASTER TO MASTER_HOST='192.168.100.1' , MASTER_PORT=3306 , MASTER_USER='save' , MASTER_PASSWORD='123456' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=328;

备注:MASTER_LOG_POS的数值是1.3步骤获取

Save2服务器配置

1 登录数据库

$ docker exec -it mysql_save2 bash

$ mysql -uroot -p

输入密码123456登录数据库

2 配置同步(在数据库内操作)

$ CHANGE MASTER TO MASTER_HOST='192.168.100.1' , MASTER_PORT=3306 , MASTER_USER='save' , MASTER_PASSWORD='123456' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=328;

备注:MASTER_LOG_POS的数值是1.3步骤获取

启动同步

分别在save1和save2数据库上执行

$ START SLAVE;

查看master 配置状态(在数据库内部操作)

$ show processlist\G

看到上面的Command: Binlog Dump说明配置成功!

查看save1和save2的主从配置状态(在数据库内部操作)

$ SHOW SLAVE STATUS\G;

 出现2个YES表示配置正常

设置从库只读(在数据库内部操作)

$ set global read_only=1;

备注:只读设置对root用户无效

来源地址:https://blog.csdn.net/free_9527/article/details/130079894

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯