MySQL高可用搭建方案之(MMM)(三)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL高可用搭建方案之(MMM)(三)
编译安装MMM

我们是使用的MySQL的容器镜像来启动的MySQL集群,而这个从docker hub上面拉取的MySQL5.7官方版本的镜像是基于Debian系统来制作的,所以我们此次安装MMM软件需要基于Debian系统来安装。

下载好的mysql-mmm

如下所示:

root@test:~# ls -lstr  
total 60  
56 -rw-r--r-- 1 root root 55278 Feb 21 16:22 mysql-mmm_2.2.1.orig.tar.gz  
4 drwxr-xr-x 2 root root 4096 Feb 21 16:24 deb  
root@test:~#

解压并且安装,但是在安装MMM之前,先安装一下它的依赖包,使用如下命令来安装:

apt-get install liblog-log4perl-perl libmailtools-perl liblog-dispatch-perl libclass-singleton-perl libproc-daemon-perl
libalgorithm-diff-perl libdbi-perl libdbd-mysql-perl -y

安装MMM的命令和过程如下:

root@test:~# tar -zxf mysql-mmm_2.2.1.orig.tar.gz  
root@test:~# ls -lstr  
total 64  
4 drwxr-xr-x 6 root root 4096 May 7 2010 mysql-mmm-2.2.1  
56 -rw-r--r-- 1 root root 55278 Feb 21 16:22 mysql-mmm_2.2.1.orig.tar.gz  
4 drwxr-xr-x 2 root root 4096 Feb 21 16:24 deb  
root@test:~# cd mysql-mmm-2.2.1/  
root@test:~/mysql-mmm-2.2.1# make install  
mkdir -p usr/share/perl5/MMM usr/lib/mysql-mmm usr/sbin var/log/mysql-mmm etc etc/mysql-mmm etc/init.d/  
cp -r lib/Common/ usr/share/perl5/MMM  
\[ -f etc/mysql-mmm/mmm_common.conf \] || cp etc/mysql-mmm/mmm_common.conf etc/mysql-mmm/  
mkdir -p usr/lib/mysql-mmm/agent/  
cp -r lib/Agent/ usr/share/perl5/MMM  
cp -r bin/agent/* usr/lib/mysql-mmm/agent/  
cp -r etc/init.d/mysql-mmm-agent etc/init.d/  
cp sbin/mmm_agentd usr/sbin  
\[ -f etc/mysql-mmm/mmm_agent.conf \] || cp etc/mysql-mmm/mmm_agent.conf etc/mysql-mmm/  
mkdir -p usr/lib/mysql-mmm/monitor/  
cp -r lib/Monitor/ usr/share/perl5/MMM  
cp -r bin/monitor/* usr/lib/mysql-mmm/monitor/  
cp -r etc/init.d/mysql-mmm-monitor etc/init.d/  
cp sbin/mmm\_control sbin/mmm\_mond usr/sbin  
\[ -f etc/mysql-mmm/mmm_mon.conf \] || cp etc/mysql-mmm/mmm_mon.conf etc/mysql-mmm/  
mkdir -p usr/lib/mysql-mmm/tools/  
cp -r lib/Tools/ usr/share/perl5/MMM  
cp -r bin/tools/* usr/lib/mysql-mmm/tools/  
cp sbin/mmm\_backup sbin/mmm\_clone sbin/mmm_restore usr/sbin  
\[ -f etc/mysql-mmm/mmm_tools.conf \] || cp etc/mysql-mmm/mmm_tools.conf etc/mysql-mmm/  
root@test:~/mysql-mmm-2.2.1#

如果在安装mmm

的时候,提示没有make

命令,则需要先安装make

命令,安装的时候如果是Debian或Ubuntu系统,使用如下apt-get命令安装:

apt-get install make cmake -y

如果是CentOS或Redhat系统,则使用如下的yum命令来安装:

yum install make cmake -y

以上编译安装MMM需要在每一个节点都执行,包括两个master节点和两个slave节点,还有monitor监控节点也要安装。

安装完MMM之后,我们需要注意一下几个目录,这是我们使用MMM服务的基础。

# MMM各种配置文件所在目录  
/etc/mysql-mmm
# MMM服务日志文件所在目录  
/var/log/mysql-mmm/mmm_mond.log # MMM的monitor服务的日志文件  
/var/log/mysql-mmm/mmm_agentd.log # MMM的agent服务的日志文件
# 各种perl脚本所在目录  
/usr/lib/mysql-mmm/agent # agent客户端各种脚本所在目录  
/usr/lib/mysql-mmm/monitor # monitor监控端各种脚本所在目录  
/usr/lib/mysql-mmm/tools # 工具包脚本所在目录
# 启动和关闭MMM服务的脚本文件  
/etc/init.d/mysql-mmm-agent  
/etc/init.d/mysql-mmm-monitor

创建MMM使用的MySQL用户

监控用和客户端用户,在所有的节点上都要创建这两个用户。如果已经配置组从同步,在master1上创建就OK,其他节点会自动同步这两个创建好的用户到其他节点。

create user 'mmm_monitor'@'172.20.0.%' identified by 'mmm_monitor';  
grant replication client on *.* to 'mmm_monitor'@'172.20.0.%';
create user 'mmm_agent'@'172.20.0.%' identified by 'mmm_agent';  
grant super, replication client, process on *.* to 'mmm_agent'@'172.20.0.%';

需要注意的是这两个用户的权限不同,结合前面我们配置组从同步的哪一个用户,我们来对比一下:

  • monitor:MMM监控使用的用户,拥有replication client权限就可以。
  • agent:MMM客户单使用的用,拥有super、replication client、process权限。
  • replication:组从同步使用的用户,拥有replication slave权限即可。

最后的用户在四个节点上面的结果如下图所示:

修改MMM的配置文件

MMM所有的配置文件都在如下目录中:

root@master1:/etc/mysql-mmm# ls -lstr etc/mysql-mmm/*  
4 -rw-r----- 1 root root 321 Feb 22 21:46 etc/mysql-mmm/mmm_mon.conf  
4 -rw-r----- 1 root root 1293 Feb 22 21:46 etc/mysql-mmm/mmm_tools.conf  
4 -rw-r----- 1 root root 37 Feb 22 22:21 etc/mysql-mmm/mmm_agent.conf  
4 -rw-r----- 1 root root 789 Feb 22 23:20 etc/mysql-mmm/mmm_common.conf  
root@master1:/etc/mysql-mmm#

「mmm_comm.conf配置文件」

所有5个节点中的/etc/mysql-mmm/mmm_common.conf

配置文件都修改为如下所示的内容。

root@master1:/etc/mysql-mmm# cat mmm_common.conf
active\_master\_role writer
<host default>  
# 网卡的名称,各个主机上面网络设备的名称  
 cluster_interface  eth0
 pid\_path   /var/run/mmm\_agentd.pid  
 bin_path   /usr/lib/mysql-mmm/
# 主从复制用户名和密码  
replication\_user repl\_user  
replication\_password repl\_user
# MMM服务使用的anget用户名和密码  
agent\_user mmm\_agent  
agent\_password mmm\_agent
</host>
# master1的配置信息  
<host master1>  
ip 172.20.0.11  
mode master  
peer master2  
</host>
# master2的配置信息  
<host master2>  
ip 172.20.0.21  
mode master  
peer master1  
</host>
# slave1的配置信息  
<host slave1>  
ip 172.20.0.12  
mode slave  
</host>
# slave2的配置信息  
<host slave2>  
ip 172.20.0.22  
mode slave  
</host>
# 写虚拟IP的配置信息,指定可写的主机名称  
<role writer>  
hosts master1, master2  
ips 172.20.0.100  
mode exclusive  
</role>
# 读虚拟IP的配置信息,指定可以提供读服务的主机名称。下面的VIP和主键名称不一定是一一对应的,VIP是随机分布到各个可读节点的。  
# 如果提供多个VIP,有可能一个节点被分配多个VIP,这样也是支持的。  
<role reader>  
hosts master1, master2, slave1, slave2  
ips 172.20.0.111, 172.20.0.211, 172.20.0.122, 172.20.0.222  
mode balanced  
</role>
root@master1:/etc/mysql-mmm#

上面的role reader

中配置的可读节点,可以根据自己的需求来配置,这里我把master1, master2, slave1, slave2

都作为可读的节点,当然可以把主节点master1

去掉,只配置master2, slave1, slave2

三个节点。这里的ips

也是我们指定的VIP的值,我们可以配置多个VIP,最好是VIP的个数和上面的host的数目一致,表示每一个提供读的节点分配一个VIP。

「mmm_agent.conf配置文件」

每一个节点上面的/etc/mysql-mmm/mmm_agent.conf

配置文件中,都在第2行中,修改一下主机名称。下面给出master1节点的配置如下:

root@master1:/etc/mysql-mmm# cat mmm_agent.conf  
include mmm_common.conf  
this master1  
root@master1:/etc/mysql-mmm#

其他master2、slave1、slave2各个节点也需要作出对应的修改。只要把master1改为对应的主机名称即可。

「mmm_mon.conf配置文件」

在monitor节点上,修改/etc/mysql-mmm/mmm_mon.conf

配置文件,修改内容如下所示,其他四个节点不需要对这个文件做修改。

root@monitor:/etc/mysql-mmm# cat mmm_mon.conf  
include mmm_common.conf
<monitor>  
 ip     127.0.0.1  
 pid\_path    /var/run/mmm\_mond.pid  
 bin_path    /usr/lib/mysql-mmm/  
 status\_path    /var/lib/misc/mmm\_mond.status  
 ping_ips    172.20.0.1, 172.20.0.11, 172.20.0.21, 172.20.0.12, 172.20.0.22 # 网关IP地址,和各个节点的物理IP地址,用于监控各个节点的状态是否可用  
</monitor>
# MMM服务使用MySQL中的monitor用户名称和密码  
<host default>  
monitor\_user mmm\_monitor  
monitor\_password mmm\_monitor  
</host>
#
debug值为0非debug模式,为1的时候表示debug模式,debug模式下,会在/var/log/mysql-mmm/mmm_mond.log日志文件中生成更多日志信息。  
debug 0  
root@monitor:/etc/mysql-mmm#

启动MMM服务

客户端agent服务相关命令如下,客户端agent启动后日志存放在/var/log/mysql-mmm/mmm_agentd.log

文件中。

/etc/init.d/mysql-mmm-agent start  
/etc/init.d/mysql-mmm-agent status  
/etc/init.d/mysql-mmm-agent stop  
/etc/init.d/mysql-mmm-agent restart

监控端monitor服务相关命令如下,监控端monitor启动后日志存放在/var/log/mysql-mmm/mmm_mond.log

文件中。

/etc/init.d/mysql-mmm-monitor start  
/etc/init.d/mysql-mmm-monitor status  
/etc/init.d/mysql-mmm-monitor stop  
/etc/init.d/mysql-mmm-monitor restart

MMM监控状态有一个管理命令mmm_control

,它的使用帮助如下所示:

root@monitor:/# mmm_control --help  
Invalid command '--help'
Valid commands are:  
help \- show this message  
ping \- ping monitor  
show - show status  
checks \[<host>|all \[<check>|all\]\] - show checks status  
set_online <host>                 \- set host <host> online  
set_offline <host>                \- set host <host> offline  
mode - print current mode.  
set_active - switch into active mode.  
set_manual - switch into manual mode.  
set_passive - switch into passive mode.  
move_role \[--force\] <role> <host> \- move exclusive role <role> to host <host>  
(Only use --force if you know what you are doing!)  
set_ip <ip> <host>                \- set role with ip <ip> to host <host>
root@monitor:/#

常用的维护节点状态的命令如下:

mmm_control show  
mmm_control checks all  
mmm\_control set\_online master1  
mmm\_control set\_online master2  
mmm\_control set\_online slave1  
mmm\_control set\_online slave2

「下面分别在四个MySQL节点上执行如下命令启动并查看MMM的客户端服务」

  • master1主节点上,启动和查看MMM的客户端服务如下:
root@master1:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent start  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Starting MMM Agent daemon... Ok
root@master1:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent status  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Checking MMM Agent process: running.  
root@master1:/etc/mysql-mmm#
  • master2主节点上,启动和查看MMM的客户端服务如下:
root@master2:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent start  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Starting MMM Agent daemon... Ok
root@master2:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent status  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Checking MMM Agent process: running.  
root@master2:/etc/mysql-mmm#
  • slave1主节点上,启动和查看MMM的客户端服务如下:
root@slave1:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent start  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Starting MMM Agent daemon... Ok
root@slave1:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent status  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Checking MMM Agent process: running.  
root@slave1:/etc/mysql-mmm#
  • slave2主节点上,启动MMM的客户端服务如下:
root@slave2:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent start  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Starting MMM Agent daemon... Ok
root@slave2:/etc/mysql-mmm# etc/init.d/mysql-mmm-agent status  
Daemon bin: '/usr/sbin/mmm_agentd'  
Daemon pid: '/var/run/mmm_agentd.pid'  
Checking MMM Agent process: running.  
root@slave2:/etc/mysql-mmm#

「下面在监控节点上执行如下命令启动并查看MMM的监控服务」

  • monitor节点上,启动和查看MMM的监控端服务如下:
root@monitor:/etc/mysql-mmm# etc/init.d/mysql-mmm-monitor start  
Daemon bin: '/usr/sbin/mmm_mond'  
Daemon pid: '/var/run/mmm_mond.pid'  
Starting MMM Monitor daemon: Ok
root@monitor:/etc/mysql-mmm# etc/init.d/mysql-mmm-monitor status  
Daemon bin: '/usr/sbin/mmm_mond'  
Daemon pid: '/var/run/mmm_mond.pid'  
Checking MMM Monitor process: running.  
root@monitor:/etc/mysql-mmm#
  • 在monitor节点,查看监控的状态:
root@monitor:/etc/mysql-mmm# mmm_control show  
master1(172.20.0.11) master/AWAITING_RECOVERY. Roles:  
master2(172.20.0.21) master/AWAITING_RECOVERY. Roles:  
slave1(172.20.0.12) slave/AWAITING_RECOVERY. Roles:  
slave2(172.20.0.22) slave/AWAITING_RECOVERY. Roles:
root@monitor:/etc/mysql-mmm# mmm\_control set\_online master1;  
OK: State of 'master1' changed to ONLINE. Now you can wait some time and check its new roles!  
root@monitor:/etc/mysql-mmm# mmm\_control set\_online master2  
OK: State of 'master2' changed to ONLINE. Now you can wait some time and check its new roles!  
root@monitor:/etc/mysql-mmm# mmm\_control set\_online slave1  
OK: State of 'slave1' changed to ONLINE. Now you can wait some time and check its new roles!  
root@monitor:/etc/mysql-mmm# mmm\_control set\_online slave2  
OK: State of 'slave2' changed to ONLINE. Now you can wait some time and check its new roles!  
root@monitor:/etc/mysql-mmm# mmm_control show  
master1(172.20.0.11) master/ONLINE. Roles: reader(172.20.0.111), writer(172.20.0.100)  
master2(172.20.0.21) master/ONLINE. Roles: reader(172.20.0.211)  
slave1(172.20.0.12) slave/ONLINE. Roles: reader(172.20.0.122)  
slave2(172.20.0.22) slave/ONLINE. Roles: reader(172.20.0.222)
root@monitor:/etc/mysql-mmm#

「问题排查1:monitor服务不能正常启动?」

当在monitor节点启动监控服务后,监控服务一会就异常退出了。原因是在使用docker启动集群节点的时候没有使用--cap-add NET_ADMIN

参数,没有这个参数就没有办法在容器只用使用虚拟VIP的功能。在删除容器后,增加参数重新运行后,才运行起来。

后来,又发现monitor节点启监控服务器仍然失败,查看日志/var/log/mysql-mmm/mmm_mond.log

,如下所示:

root@monitor:/etc/mysql-mmm# tail -f var/log/mysql-mmm/mmm_mond.log  
2021/02/22 23:26:27 INFO Waiting for network connection...  
2021/02/22 23:26:27 INFO Spawning checker 'ping_ip'...  
2021/02/22 23:26:27 INFO Shutting down checker 'ping_ip'...  
2021/02/22 23:26:27 INFO Network connection is available.  
2021/02/22 23:26:27 FATAL Child exited with exitcode 255, restarting after 10 second sleep

修改/etc/mysql-mmm/mmm_mon.conf

配置文件中的debug

的值为1

,表示以debug

的模式运行monitor服务,此时我们再重新启动monitor服务,查看输出的详细错误日志如下:

root@monitor:/etc/mysql-mmm# etc/init.d/mysql-mmm-monitor start  
Daemon bin: '/usr/sbin/mmm_mond'  
Daemon pid: '/var/run/mmm_mond.pid'  
Starting MMM Monitor daemon: 2021/02/22 23:30:17 INFO STARTING...  
2021/02/22 23:30:17 DEBUG Created pid file '/var/run/mmm_mond.pid' with pid 5330  
2021/02/22 23:30:17 INFO Waiting for network connection...  
2021/02/22 23:30:17 INFO Spawning checker 'ping_ip'...  
2021/02/22 23:30:17 DEBUG IP '172.20.0.1' is reachable: OK  
2021/02/22 23:30:17 INFO Shutting down checker 'ping_ip'...  
2021/02/22 23:30:17 INFO Network connection is available.  
Use of uninitialized value $old_state in string ne at usr/share/perl5/MMM/Monitor/Agent.pm line 42.  
2021/02/22 23:30:17 FATAL Child exited with exitcode 255, restarting after 10 second sleep

于是去修改了/usr/share/perl5/MMM/Monitor/Agent.pm

文件,在第41行增加如下内容,保存退出,重新启动monitor服务。

if (! defined($old\_state)) { $old\_state = 'certinally not new_state'; }

然后再次重启monitor服务,启动成功。然后把/etc/mysql-mmm/mmm_mon.conf

配置文件中的debug

的值再次修改为0

,关闭debug

模式再次重启monitor服务。此时查看monitor服务的日志内容如下:

root@monitor:/# tail -f var/log/mysql-mmm/mmm_mond.log  
2021/02/22 23:42:43 INFO Check 'rep_backlog' on 'slave1' is ok!  
2021/02/22 23:42:43 INFO Check 'rep_backlog' on 'master2' is ok!  
2021/02/22 23:42:43 INFO Check 'rep_threads' on 'master1' is ok!  
2021/02/22 23:42:43 INFO Check 'rep_threads' on 'slave2' is ok!  
2021/02/22 23:42:43 INFO Check 'rep_threads' on 'slave1' is ok!  
2021/02/22 23:42:43 INFO Check 'rep_threads' on 'master2' is ok!  
2021/02/22 23:42:43 INFO Check 'ping' on 'master1' is ok!  
2021/02/22 23:42:43 INFO Check 'ping' on 'slave2' is ok!  
2021/02/22 23:42:43 INFO Check 'ping' on 'slave1' is ok!  
2021/02/22 23:42:43 INFO Check 'ping' on 'master2' is ok!

「问题排查2:虚拟IP不能再各个节点生成?」

启动MMM后,发现不能通过VIP访问MySQL数据库,去各个节点使用ifconfig -a

或者ip addr

命令查看发现没有对应的VIP生成。查看了各个节点MMM agent服务的日志文件/var/log/mysql-mmm/mmm_agent.log

,发现如下错误信息:

root@master1:/# tail -f var/log/mysql-mmm/mmm_agentd.log  
2021/02/23 17:16:19 FATAL Couldn't configure IP '172.20.0.111' on interface 'eth0': undef  
2021/02/23 17:16:19 FATAL Couldn't allow writes: undef  
2021/02/23 17:16:22 FATAL Couldn't configure IP '172.20.0.111' on interface 'eth0': undef  
2021/02/23 17:16:22 FATAL Couldn't allow writes: undef

经过排查发现是在设置VIP的时候失败,设置客户端VIP的脚本如下:

/usr/lib/mysql-mmm/agent/configure_ip

执行上面的脚本发现如下错误:

提示我们,需要在perl中安装arp.pm包。安装的时候,为了提高速度,我们修改一下perl安装模块的时候使用的镜像源。

修改perl安装包的时候使用的镜像源,参考如下方式修改:

root@master1:/# perl -MCPAN -e shell  
cpan\[5\]> o conf urllist  
urllist  
0 \[http://www.cpan.org/\] 
Type 'o conf' to view all configuration items
cpan\[6\]> o conf urllist push http://mirrors.aliyun.com/CPAN/  
Please use 'o conf commit' to make the config permanent!
cpan\[7\]> o conf commit  
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
cpan\[8\]> o conf urllist  
urllist  
0 \[http://www.cpan.org/\] 
1 \[http://mirrors.aliyun.com/CPAN/\] 
Type 'o conf' to view all configuration items
cpan\[9\]> install Net::ARP
cpan\[10\]>

其中各个命令的含义如下:

  • o conf urllist
    :查看的当前的镜像源
  • o conf urllist push http://mirrors.aliyun.com/CPAN/
    :添加阿里的perl镜像源
  • o conf commit
    :提交对镜像源的修改
  • install Net::ARP
    :安装arp.pm包。

经过上面的安装方式,发现安装失败。于是下载源码自己编译安装这个包。参考如下命令顺序来编译安装。

# 下载源码文件  
wget http://cpan.metacpan.org/authors/id/C/CR/CRAZYDJ/Net-ARP-1.0.11.tgz
# 解压下载后的文件  
tar -zxvf Net-ARP-1.0.11.tgz
# 进入下载目录  
cd Net-ARP-1.0.11
# 执行编译  
perl Makefile.PL
# 执行安装  
make install

上面安装Net-ARP包的操作,需要在除了monitor节点的四个节点上都执行安装一下。

最后所有节点的IP地址和VIP地址如下所示:


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
75 3
Mysql高可用架构方案
|
15天前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
40 5
|
20天前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
28 1
|
2月前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
541 15
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
2月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
403 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
1月前
|
SQL 关系型数据库 MySQL
mysql集群方案
mysql集群方案
41 0
|
3月前
|
SQL 关系型数据库 MySQL
orchestrator搭建mysql高可用
orchestrator搭建mysql高可用
45 0
|
3月前
|
缓存 关系型数据库 MySQL
如何实现mysql高可用集群
如何实现mysql高可用集群
40 0
|
3月前
|
安全 关系型数据库 MySQL
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
|
8天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
23 1