MYSQL集群高可用和数据监控渠道完成计划
一、项目阐明。
该项目共分为2个子项目,由。MYSQL集群高可用。和。数据监控渠道。两部分组成。
• 具体要求。
• 网络装备:确保集群中的MySQL服务器之间的。网络衔接安稳牢靠。,避免网络推迟或丢包对集群功用形成影响。
• 同步参数装备:关于需求数据同步的集群计划(如主从仿制和组仿制),需求。合理装备同步参数。,确保数据的实时性和一致性。
• 备份和康复战略:拟定。完善的备份和康复战略。,定时备份集群数据,并测验康复流程的可行性,以确保在发生毛病时能够快速康复数据和服务。
• 监控和告警:运用。监控东西对集群进行实时监控。,并设置合理的告警阈值。当集群呈现反常状况时,能够及时发现并处理。
• 规划思路。
• MYSQL ==集群高可用== 运用。双主双活+keepalived。完结。
• MYSQL ==数据监控渠道== 运用。mysqld_exporter+prometheus+Grafana。三件套完结。
• 集群及监控渠道树立结束后能够完结企业内部的。mysql数据库双主机在线增加高可用性。,经过keepalived的毛病检测和VIP漂移才能使得。发生毛病后运用者无感知,增加体系的容错才能。,经过监控渠道完结。mysql数据库监控可视化。
1.1 MySQL中的主从仿制技能。
MySQL 是根据它本身的 Bin-log 日志来完结数据的异步仿制,因为 Bin-log 日志中会记载一切对数据库发生改变的句子,包含 DML 数据改变和 DDL 结构改变句子,数据的同步进程如下:
在这里刺进图片描绘。
1.2 keepalived高可用计划。
Keepalived是一个轻量级其他高可用解决计划,运用。VR。RP(Vritrual Rou。te。r Redundancy Protocol,虚拟路由冗余协议)的VIP虚拟IP的漂移功用,完结单点毛病搬运。
在这里刺进图片描绘。
1.3 可视化监控渠道三件套。
• Mysqld_exporter:是一款轻量级的mysql监控东西,用来搜集MysQL数据库相关方针并将其露出给prometheus进行监控和告警。
• Prometheus:普罗米修斯,一个开源的服务监控体系,它担任收集和存储运用的监控方针数据,并以可视化的办法进行展现,以便于用户实时把握体系的运转状况,并对反常进行检测。
• Grafana:格拉法娜,是一个跨渠道的开源的衡量剖析和可视化东西,能够从prometheus获取数据进行可视化数据大屏展现。
总结:mysqld_exporter用于抓取mysql监控方针数据,prometheus接收到数据后进行收拾剖析,grafana从prometheus获取数据运用大屏模版进行仪表盘展现。
1.4 项目使命清单。
1. 体系渠道布置。
• 装置VmWare17。
• 虚拟出三台计算机。
• 装置OpenEuler22.03 SP4 LTS。 操作体系。
• 体系设置:主机名、防火墙、SE。Linux。、hosts映射、IP地址:
2. 装置2台MySql服务器。
• 运用二进制包进行装置。
• 装备MySql体系服务。
3. 布置高可用MySql双主集群。
• 装备账户。
• 装备主主仿制。
• 装置keepalived并装备。
4. 装置装备监控渠道。
• 装置Mysqld_Exporter+Prometheus+grafana-enterprise。
• 装备监控渠道组件。
5. 压力测验。
二、项目完结进程。
项目拓扑结构。
在这里刺进图片描绘。
软硬件环境清单:
在这里刺进图片描绘。
2.1 OpenEuler体系装置。
2.1.1 创立虚拟机实例。
• 第一步:文件菜单->新建虚拟机->典型->下一步。
image-20230426105520639。
• 第二步:稍后装置操作体系。
image-20230426105559441。
• 第三步:挑选操作体系类型,因为OpenEuler22.03 LTS SP3运用Linux5.10内核则挑选如下:
image-20231115113531955。
• 第四步:命名虚拟机。
在这里刺进图片描绘。
• 第五步:设置磁盘空间20G,动态空间请求,设置为单个文件。
在这里刺进图片描绘。
• 第六步:自定义硬件,设置硬件参数。
在这里刺进图片描绘。
• 第七步:设置自定义硬件。
• 内存:引荐2GB。
•。 处理器。:1颗、2中心。
• ==新CD/DVD:习惯ISO映像文件,点击阅读按钮,挑选之前下载好的openEuler-22.03-LTS-SP2-x86_64-dvd.iso镜像文件==。
• 网络适配器:挑选NAT形式。
• 显现器:去掉"加快3D图形“的对钩。
• 终究:
image-20231115114047316。
• 挑选封闭、完结。
2.1.2 OpenEuler22.03操作体系的装置布置。
挑选言语:中文或英文。
• 装置信息摘要设置。
image-20240524091942939。
• 装置目的地:显现装置方位,一般为硬盘,点击。自定义。,然后点击完结:
在这里刺进图片描绘。
• /boot:体系发动分区,引荐500M或1GB。
• swap:交流分区,4G。
• /:根分区,希望容量省掉,表明将剩下空间悉数分配。
办法:点击下图的。加号。,设置。挂载点及希望容量。(重复屡次)。
image-20240524092325368。
image-20240524092439307。
image-20240524092505325。
image-20240524092533410。
• 点击完结,承受更改。
image-20240524092603436。
• 网络和主机名:翻开网卡衔接。
image-20240524092626997。
• 主机名:moniter、master1、master2,点击运用。
• 装备:IPv4设置,手动,别离装备IP192.168.88.163、192.168.88.161、192.168.88.162,子网掩码255.255.255.0,网关192.168.88.2,DNS服务器192.168.88.2点击保存。
在这里刺进图片描绘。
• root账户暗码设置:暗码为OPENlab123。
image-20240524092743232。
• 创立用户:创立一个一般账户KD,设置暗码:OPENlab123。
在这里刺进图片描绘。
• 装置完结后点击"重启体系"。
image-20240524092900894。
2.1.3 装备OpenEuler22.03。
• 登录。
• 账号:root。
• 暗码:OPENlab123。
在这里刺进图片描绘。
• 修正主机名。
[rootmoniter~]# hostnamectlset-hostname monitor。
• 三台主机从头设置登录体系暗码为。123。
[rootmoniter~]# passwd root更改用户 root 的暗码 。新的暗码:无效的暗码: 暗码少于8个字符从头输入新的暗码:passwd:一切的身份验证令牌现已成功更新。[rootmoniter~]#。
• 重启,从头衔接。
reboot。
• 封闭三台主机防火墙及SELinux。
[rootmonitor~]# vi/etc/selinux/config# This file controls the stateofSELinuxonthe system.# SELINUX=。can。takeoneofthese threevalues:# enforcing-SELinux security policyisenforced.# permissive-SELinux prints warnings inste。ad。ofenforcing.# disabled-NoSELinux policyisloaded.SELINUX=disabled# SELINUXTYPE=can takeoneofthese threevalues:# targeted-Targeted processesareprotected,# minimum-Modifica。ti。onoftargeted policy.Onlyselected processesareprotected.# mls-Multi Level Security protection.SELINUXTYPE=targeted[rootmonitor~]# systemctl stop firewalld #封闭防火墙[rootmonitor~]# systemctl disable firewalld # 撤销开机发动Removed/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.Removed/etc/systemd/system/multi-user.target.wants/firewalld.service.[rootmonitor~]# reboot #重启。
• 三台主机下载所需软件并晋级。
yum install vim make gcc tree net-tools tar-yyumupdate。
• 三台主机时刻同步。
[rootmaster2~]# vim/etc/chrony.conf。
在这里刺进图片描绘。
[rootmaster2~]# systemctl restart chronyd[rootmaster2~]# chronyc sources-v .-- Source mode '^' = server, '=' = peer, '#' = local clock./.-Source state'*'=currentbest,'+'=combined,'-'=notcombined,|/ 'x'=may beinerror,'~'=too variable,'?'=unusable.|| .-xxxx [ yyyy ]+/-zzzz|| Re。ac。hability register (octal)-. | xxxx=adjustedoffset,|| Log2(Pollinginterval)--. | | yyyy = measured offset,|| | | zzzz=estimated error.|| | | MS Name/IP address Stratum Poll Reach LastRxLastsample ===============================================================================^*203.107.6.88 2 6 17 4 +785us[+7288us]+/- 31ms[rootmaster2~]# chronyc sources-v .-- Source mode '^' = server, '=' = peer, '#' = local clock./.-Source state'*'=currentbest,'+'=combined,'-'=notcombined,|/ 'x'=may beinerror,'~'=too variable,'?'=unusable.|| .-xxxx [ yyyy ]+/-zzzz|| Reachability register (octal)-. | xxxx=adjustedoffset,|| Log2(Pollinginterval)--. | | yyyy = measured offset,|| | | zzzz=estimated error.|| | | MS Name/IP address Stratum Poll Reach LastRxLastsample ===============================================================================^*203.107.6.88 2 6 17 6 +785us[+7288us]+/- 31ms[rootmaster2~]# chronyc sources-v .-- Source mode '^' = server, '=' = peer, '#' = local clock./.-Source state'*'=currentbest,'+'=combined,'-'=notcombined,|/ 'x'=may beinerror,'~'=too variable,'?'=unusable.|| .-xxxx [ yyyy ]+/-zzzz|| Reachability register (octal)-. | xxxx=adjustedoffset,|| Log2(Pollinginterval)--. | | yyyy = measured offset,|| | | zzzz=estimated error.|| | | MS Name/IP address Stratum Poll Reach LastRxLastsample ===============================================================================^*203.107.6.88 2 6 17 6 +785us[+7288us]+/- 31ms[rootmaster2~]# chronyc sources-v .-- Source mode '^' = server, '=' = peer, '#' = local clock./.-Source state'*'=currentbest,'+'=combined,'-'=notcombined,|/ 'x'=may beinerror,'~'=too variable,'?'=unusable.|| .-xxxx [ yyyy ]+/-zzzz|| Reachability register (octal)-. | xxxx=adjustedoffset,|| Log2(Pollinginterval)--. | | yyyy = measured offset,|| | | zzzz=estimated error.|| | | MS Name/IP address Stratum Poll Reach LastRxLastsample ===============================================================================^*203.107.6.88 2 6 17 8 +785us[+7288us]+/- 31ms[rootmaster2~]# chronyc sources-v .-- Source mode '^' = server, '=' = peer, '#' = local clock./.-Source state'*'=currentbest,'+'=combined,'-'=notcombined,|/ 'x'=may beinerror,'~'=too variable,'?'=unusable.|| .-xxxx [ yyyy ]+/-zzzz|| Reachability register (octal)-. | xxxx=adjustedoffset,|| Log2(Pollinginterval)--. | | yyyy = measured offset,|| | | zzzz=estimated error.|| | | MS Name/IP address Stratum Poll Reach LastRxLastsample ===============================================================================^*203.107.6.88 2 6 17 8 +785us[+7288us]+/- 31ms[rootmaster2~]# timedatectl Localtime: 六2025-02-1515:42:41CST Universaltime: 六2025-02-1507:42:41UTC RTCtime: 六2025-02-1507:42:41 Timezone: Asia/Shanghai (CST,+0800)Systemclock synchronized: yes NTP service: active RTCinlocalTZ:no。
2.2 出产环境二进制包装置MySql。
下载装置包。
网址链接: https://dev.mysql.com/downloads/mysql/。
在这里刺进图片描绘。
2.2.1 解压缩装置包。
• 衔接xshell、鄙人shell点击xftp图标。
在这里刺进图片描绘。
在这里刺进图片描绘。
• 解压装置包、准备作业:
[rootmaster1~]# tar xvf mysql-8.0.37-linux-glibc2.17-x86_64.tar.xz......[rootmaster1~]# cd mysql-8.0.37-linux-glibc2.17-x86_64[rootmaster1mysql-8.0.37-linux-glibc2.17-x86_64]# lsbin docs include lib LICENSE man README share support-files。
# 移动到默许装置目录,也可自行修正[rootmaster1~]# cd~#~是一个特别的符号,表明当时用户的主目录[rootmaster1~]# mv mysql-8.0.37-linux-glibc2.17-x86_64/usr/local/mysql[rootmaster1/]# cd/usr/local/mysql[rootmaster1mysql]# groupadd mysql # 创立名为mysql的用户组[rootmaster1mysql]# useradd-r-g mysql-s/bin/falsemysql # 创立名为 mysql 的体系用户,将其增加到mysql用户组中,并设置其登录shell为/bin/false,以约束该用户的登录权限#-r:创立体系帐户#-g:为所创立的用户指定基本组的 id .假如该组 id 不存在会报错,假如存在则创立成功#-s:用于指定所创立用户可操作的脚本## 删去用户指令:userdel[rootmaster1mysql]# mkdir data # 创立用于寄存MySQL数据文件目录# 设置mysql目录的账户及作业组,出产环境中不要运用root[rootmaster1mysql]# chown-R mysql:mysql/usr/local/mysql#-R:表明递归修正指定目录下一切文件及其子目录的权限# chmod 指令是用于给文件或目录设置权限,假如是目录,咱们需求运用-R 选项,假如是文件这个选项能够不必指定。# chown 指令是用于给文件或目录修正所属者和所属组权限。
2.2.2 初始化作业。
在这里刺进图片描绘。
master1:
# 初始化数据目录[rootmaster1mysql]# bin/mysqld--initialize --user=mysql --basedir=/usr/local/mysql --dat。adi。r=/usr/local/mysql/data # 留意:需求仿制暗码2025-02-16T07:15:42.081778Z0[System] [MY-013169] [Server]/usr/local/mysql/bin/mysqld (mysqld8.0.37) initializingofserverinprogres。sas。process52832025-02-16T07:15:42.086988Z1[System] [MY-013576] [InnoDB] InnoDB initialization has started.2025-02-16T07:15:42.326267Z1[System] [MY-013577] [InnoDB] InnoDB initialization has ended.2025-02-16T07:15:43.605271Z6[Note] [MY-010454] [Server] A temporary passwordisgeneratedforrootlocalhost: ;Ay,miVu;9k1 #生成暂时暗码:;Ay,miVu;9k1[rootmaster1mysql]# bin/mysqld_safe--user=mysql & # 运用后台办法以mysql用户身份发动#MySQL 服务器,mysqld_safe 是一个用于发动和监控 MySQL 服务器的脚本[1]5328[rootmaster1mysql]# Loggingto'/usr/local/mysql/data/master1.err'.2025-02-16T07:17:08.488162Z mysqld_safe Starting mysqld daemonwithdatabasesfrom/usr/local/mysql/data。初始化数据目录: https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/data-directory-initialization.html。
在这里刺进图片描绘。
master2:
[rootmaster2mysql]# groupadd mysql[rootmaster2mysql]# useradd-r-g mysql-s/bin/falsemysql[rootmaster2mysql]# mkdir data[rootmaster2mysql]# chown-R mysql:mysql/usr/local/mysql# 初始化数据目录[rootmaster2mysql]# bin/mysqld--initialize --user=mysql --basedir=/usrlocal/mysql --datadir=/usr/local/mysql/data2025-02-16T05:53:39.774317Z0[System] [MY-013169] [Server]/usr/local/mysql/bin/mysqld (mysqld8.0.37) initializingofserverinprogressasprocess18542025-02-16T05:53:39.774344Z0[ERROR] [MY-010338] [Server] Can't find error-message file '/usrlocal/mysql/share/er。rms。g.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.2025-02-16T0539.781243Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2025-02-16T0540.015072Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2025-02-16T0540.481966Z 0 [Warning] [MY-013829] [Server] Missing data directory for ICU regular expressions: /usrlocal/mysql/lib/private/.2025-02-16T0541.390467Z 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: +AshIk4eerzq。
生成暂时暗码:;Ay,miVu;9k1、+AshIk4eerzq。
留意:此刻上述指令履行结束处于后台运转状况,需求。另行发动一个终端。
在这里刺进图片描绘。
[rootmaster1~]# cd "/usr/local/mysql"[rootmaster1mysql]# ps-ef|grep mysql# 检查进程运转状况root 5328 5048015:17pts/0 00:00:00/bin/sh bin/mysqld_safe--user=mysqlmysql 5410 5328015:17pts/0 00:00:01/usr/local/mysql/bin/mysqld--basedir=/usr/local/mysq --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=master1.err --。pi。d-file=master1.pidroot 5525 5458015:20pts/1 00:00:00grep--color=auto mysql[rootmaster1mysql]# cd/usr/local/mysql。
找到下面的文件进行软衔接。
[rootmaster1mysql]# ln-s/usr/lib64/libtinfo.so.6.3/usr/lib64/libtinfo.so.5[rootmaster1mysql]# ln-s/usr/lib64/libncu。rs。es.so.6.3/usr/lib64/libncurses.so.5## 删去软链接:rm-。rf。
[rootmaster1mysql]# bin/mysql-uroot-pEnter password: # 张贴之前的初始暗码:;Ay,miVu;9k1Welcometothe MySQL monitor. Commandsendwith;org.Your MySQL connection idis13Server version:8.0.37Copyright (c)2000,2024, Oracleand/orits affiliates.Oracleisa registered trademarkofOracle Corporationand/oritsaffiliates. Other names may be trademarksoftheir respectiveowners.Type'help;'or'h'forhelp. Type'c'toclear thecurrentinput statement.mysql>alteruser'root''localhost'identifiedwithmysql_native_passwordby'123456'; #修正暗码Query OK,0rowsaffected (0.00sec)mysql>flush privileges; #改写Query OK,0rowsaffected (0.04sec)mysql>use mysql; # 检查账户信息ReadingtableinformationforcompletionoftableandcolumnnamesYou can turn off this featuretogeta quicker startupwith-ADatabase changedmysql>selectuser,host,pluginf。rom。mysql.user;+------------------+-----------+-----------------------+|user |host |plugin |+------------------+-----------+-----------------------+|mysql.infoschema|localhost|caching_sha2_password||mysql.session |localhost|caching_sha2_password||mysql.sys |localhost|caching_sha2_password||root |localhost|mysql_native_password|+------------------+-----------+-----------------------+4rowsinset(0.00sec)mysql>exitBye[rootmaster1mysql]# ps-ef|grep mysqlroot 5328 5048015:17pts/0 00:00:00/bin/sh bin/mysqld_safe--user=mysqlmysql 5410 5328015:17pts/0 00:00:02/usr/local/mysql/bin/mysqld--basedir=/usr/local/mysq --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=master1.err --pid-file=master1.pidroot 5533 5458015:25pts/1 00:00:00grep--color=auto mysql# 在当时终端封闭运转的mysql[rootmaster1mysql]# kill-95328[rootmaster1mysql]# kill-95410[rootmaster1mysql]# kill-95533-bash: kill: (5533)-Nosuch process[rootmaster1mysql]# kill-95458Connection closed.Disconnectedfromremote host(master1)at15:26:04.Type `help' to learn how to use Xshell prompt.[C:~]$。
在这里刺进图片描绘。
2.2.3 设置mysql的装备文件。
回到之前的终端,敲一个回车,显现进程以杀死。
在这里刺进图片描绘。
新建装备文件,输入以下内容:
[rootmaster1mysql]# vim/etc/my.cnf # 新建装备文件,输入以下内容:
在这里刺进图片描绘。
[client]port = 3306socket = /tmp/mysql.sock[mysqld]port = 3306basedir = /usr/local/mysqldatadir = /usr/local/mysql/datatmpdir = /tmpsocket = /tmp/mysql.sockcharacter-set-server = u。tf。8mb4collation-server = utf8mb4_general_cidefault-storage-engine=INNODBlog_error = error.log。
• 装备发动脚本:
[rootmonitormysql]# cd/usr/local/mysql/support-files[rootmaster1support-files]# cp-a mysql.server/etc/init.d/mysql[rootmaster1support-files]# vim/etc/init.d/mysql。
basedir=/usr/local/mysqldatadir=/usr/local/mysql/data。
在这里刺进图片描绘。
[rootmaster1support-files]# cd~[rootmaster1~]# vim~/.bash_profile # 设置环境变量需增加如下句子。
export PATH=$PATH:/usr/local/mysql/bin。
在这里刺进图片描绘。
• 装备发动脚本。
#~是一个特别的符号,表明当时用户的主目录[rootmaster1~]# source~/.bash_profile #从头加载当时用户的 .bash_profile 文件中的装备[rootmaster1~]# systemctl daemon-reload # 重载体系装备[rootmaster1~]# systemctlstartmysql[rootmaster1~]#/usr/lib/systemd/systemd-sysv-install enable mysql # 开机发动[rootmaster1~]# mysql-uroot-pEnter password:Welcometothe MySQL monitor. Commandsendwith;org.Your MySQL connection idis8Server version:8.0.37MySQL Community Server-GPLCopyright (c)2000,2024, Oracleand/orits affiliates.Oracleisa registered trademarkofOracle Corporationand/oritsaffiliates. Other names may be trademarksoftheir respectiveowners.Type'help;'or'h'forhelp. Type'c'toclear thecurrentinput statement.mysql>updatemysql.usersethost="%"whereuser="root";Query OK,1rowaffected (0.01sec)Rowsmatched:1 Changed:1 Warnings:0mysql>flush privileges;Query OK,0rowsaffected (0.00sec)mysql>exitBye。
UUID:
master1:[rootmaster1 ~]# cat /usr/local/mysql/data/auto.cnf[auto]server-uuid=d4e30409-ec35-11ef-acfe-000c29244098。
master2:[rootmaster2 ~]# cat /usr/local/mysql/data/auto.cnf[auto]server-uuid=5ef6aa2e-ec2a-11ef-8cb0-000c293e0dba。
2.3mysql集群树立。
1. 修正2个。主节点的装备文件。
2. 创立一个用于。同步数据的账号。
3. 树立2个。主节点的彼此仿制。
4.。测验。
2.3.1 master1节点装备。
• 修正装备文件。
[rootmaster1~]# systemctl stop mysql[rootmaster1~]# vim/etc/my.cnf[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306basedir=/usr/local/mysqldatadir=/usr/local/mysql/datatmpdir=/tmpsocket=/tmp/mysql.sockcharacter-set-server=utf8mb4collation-server=utf8mb4_general_cidefault-storage-engine=INNODBlog_error=error.log#------主节点装备-------# 当时节点在集群中的仅有标识server-id=1 #server-id=1,为集群中本机标识,有必要仅有# 敞开bin-log日志,并为bin-log日志取个前缀名(有默许值可不写)log-bin=mysql-bin-log# 同步仿制时过滤的库(主要将一些不需求备份/同步库写进来)# 也能够经过binlog-do-db=xx1,xx2... 来指定要仿制的方针库binlog-ignore-db=mysql# 指定bin-log日志的格局为混合形式(默许为statement)binlog_format=mixed# 设置单个binlog日志文件的最大容量max_binlog_size=1024M#------从节点装备-------# 敞开relay-log日志(相同能够指定前缀名)relay_log=mysql-relay-log# 敞开存储进程、函数、触发器等内容的同步功用log_bin_trust_function_creators=true# 同步履行越过一些过错码(避免同步写入时呈现过错导致仿制中止)slave_skip_errors=1062#------自增序列装备-------# 设置自增初始值为1auto_increment_offset=1# 设置自增步长为2,自增序列为{1、3、5、7、9.....}auto_increment_increment=2。
server-id=1,为集群中本机标识,有必要仅有。
因为master1便是主节点又是从节点,则有必要设置===从节点装备==。
为了确保2个节点数据的一致性,需求敞开。自增序列装备。,master1节点跳步为1 3 5 7 9…。
• 创立用于。数据同步。的账号m1。
[rootmaster1~]# systemctlstartmysql[rootmaster1~]# mysql-uroot-pEnter password:Welcometothe MySQL monitor. Commandsendwith;org.Your MySQL connection idis8Server version:8.0.37MySQL Community Server-GPLCopyright (c)2000,2024, Oracleand/orits affiliates.Oracleisa registered trademarkofOracle Corporationand/oritsaffiliates. Other names may be trademarksoftheir respectiveowners.Type'help;'or'h'forhelp. Type'c'toclear thecurrentinput statement.mysql>createuser'mback''%'identifiedwithmysql_native_passwordby'123456';Query OK,0rowsaffected (0.06sec)mysql>grantreplication slaveon*.*to'mback''%';Query OK,0rowsaffected (0.05sec)mysql>。
2.3.2 master2节点装备。
[rootmaster2~]# systemctl stop mysql[rootmaster2~]# vim/etc/my.cnf[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306basedir=/usr/local/mysqldatadir=/usr/local/mysql/datatmpdir=/tmpsocket=/tmp/mysql.sockcharacter-set-server=utf8mb4collation-server=utf8mb4_general_cidefault-storage-engine=INNODBlog_error=error.log#------主节点装备-------# 当时节点在集群中的仅有标识server-id=2# 敞开bin-log日志,并为bin-log日志取个前缀名(有默许值可不写)log-bin=mysql-bin-log# 同步仿制时过滤的库(主要将一些不需求备份/同步库写进来)# 也能够经过binlog-do-db=xx1,xx2... 来指定要仿制的方针库binlog-ignore-db=mysql# 指定bin-log日志的格局为混合形式(默许为statement)binlog_format=mixed# 设置单个binlog日志文件的最大容量max_binlog_size=1024M#------从节点装备-------# 敞开relay-log日志(相同能够指定前缀名)relay_log=mysql-relay-log# 敞开存储进程、函数、触发器等内容的同步功用log_bin_trust_function_creators=true# 同步履行越过一些过错码(避免同步写入时呈现过错导致仿制中止)slave_skip_errors=1062#------自增序列装备-------# 设置自增初始值为2auto_increment_offset=2# 设置自增步长为2,自增序列为{1、3、5、7、9.....}auto_increment_increment=2。
master2节点的server-id=2,不能和master1的server-id相同。
设置。自增初始值为2。,则master2节点跳步为2 4 6 8 …。
• 创立用于。数据同步。的账号m2。
[rootmaster2~]# systemctlstartmysql[rootmaster2~]# mysql-uroot-pEnter password:Welcometothe MySQL monitor. Commandsendwith;org.Your MySQL connection idis8Server version:8.0.37MySQL Community Server-GPLCopyright (c)2000,2024, Oracleand/orits affiliates.Oracleisa registered trademarkofOracle Corporationand/oritsaffiliates. Other names may be trademarksoftheir respectiveowners.Type'help;'or'h'forhelp. Type'c'toclear thecurrentinput statement.mysql>createuser'mback''%'identifiedwithmysql_native_passwordby'123456';Query OK,0rowsaffected (0.03sec)mysql>grantreplication slaveon*.*to'mback''%';Query OK,0rowsaffected (0.00sec)mysql>。
2.3.3 树立master1 节点主从联系。
• 因为树立的是主-主架构集群,彼此为对方的从节点。,则两个节点都经过 root 账号登录。
• 此刻master1为从节点,master2为主节点。
1. 先在。master2上。检查同步的日志称号及同步点号。
# 留意:在master2上履行mysql>showmaster status;+----------------------+----------+--------------+------------------+-------------------+|File |Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+----------------------+----------+--------------+------------------+-------------------+|mysql-bin-log.000001| 664| |mysql | |+----------------------+----------+--------------+------------------+-------------------+1rowinset(0.00sec)# 日志文件:mysql-bin-log.000001# 日志数据点:664。
2. master1 节点上树立仿制联系:
master_host='192.168.88.162。
[rootmaster1~]# mysql-uroot-pEnter password:...mysql>change mastertomaster_host='192.168.88.162',master_user='mback',master_password='123456',master_port=3306,master_log_file='mysql-bin-log.000001',master_log_pos=664;Query OK,0rowsaffected,9warnings (0.07sec)mysql>startslave;Query OK,0rowsaffected,1warning (0.03sec)mysql>showslave statusG。内容来源:https://bachduy.com/app-1/058nohu com,http://chatbotjud.saude.mg.gov.br/app-1/oxidrolona
本文地址:http://w.21nx.com/new/78129863-5c299992.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。