
mysql
文章平均质量分 69
勤径苦舟
书山有路勤为径,学海无涯苦作舟。只技术分享,非商业行为,我很少看消息,所以你们给我发的消息回的很少。
邮件:920786312@qq.com
微信:zhou920786312
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MYSQL--基础--4.1--索引--数据结构--二叉查找树、红黑树、B树,Hash表
红黑树的每个节点都包含一个额外的属性,表示节点的颜色(红色或黑色),这些颜色确保了在节点的插入和删除操作中树是平衡的。红黑树 原先一个节点存储 一个元素,现在改为 一个节点 存储 多个元素,这就是B树。因为一个节点存储了更多的元素,所以整体的高度会比红黑树来的低。红黑树是二叉搜索树的变种,具有自平衡特性,也称二叉平衡树。二叉查找树,也称二叉搜索树。原创 2024-03-31 17:20:36 · 538 阅读 · 0 评论 -
MySQL--环境搭建--07--客户端安装
【代码】MySQL--环境搭建--07--客户端安装。原创 2023-12-08 19:15:44 · 85 阅读 · 0 评论 -
MySQL--环境搭建--06--测试--docker部署主从架构
至此:M2 里面已经创建了一个用户:repM2 123456,拥有所有库,所有表replication slave。前面已经有了M1,M1S1,所以我们只做M1S2,M2,M2S1的改动。前面已经有了M1,M1S1,所以我们只做M1S2,M2,M2S1的改动。前面已经有了M1,M1S1,所以我们只做M1S2,M2,M2S1的改动。前面已经有了M1,M1S1,所以我们只做M1S2,M2,M2S1的改动。原创 2023-08-31 11:59:24 · 133 阅读 · 0 评论 -
MySQL--基础--1.1--命令--grant
给一个用户授权多张表时,可以多次执行以上语句。创建表、索引、视图、存储过程、函数。原创 2023-03-22 13:28:25 · 889 阅读 · 0 评论 -
MYSQL--架构--MGR--部署--04--运维
1.3、当前复制渠道连接信息1.4、当前复制渠道应用信息1.5、当前主master2、常用命令–更新2.1、启动/停止组复制2.2、手动切换主节点2.3、切换为多主模式2.4、切换为单主模式2.5、开启/关闭组复制引导2.6、配置节点加组时的通道3、功能操作3.1、节点退出与恢复如果有节点发生异常退出后,重启该节点MGR功能,观察状态是否会从RECOVERING转变为ONLINE,如果无法成功,RECOVERING会被集群剔除RECOVERING阶段会从集群中拉原创 2022-06-01 09:47:22 · 416 阅读 · 0 评论 -
MYSQL--架构--MGR--部署--03--配置
loose 前缀的意义在于第一次启动时还没加载组复制的plugin,可以让mysql server忽略该参数,继续启动。尝试从供体池连接到供体时,加入该组的服务器尝试的次数是10启动时加载插件,这里配置的是组复制的插件。是否使用克隆插件。Mysql服务ID将master的连接信息写入表:mysql.salve_master_info将中继日志的信息写入表:mysql.slave_realy_log_info从服务器 从 主服务器 收到的更新 记入到 从服务器 自己的二进制日志文件中。以行的格式记录将MySQ原创 2022-06-01 09:47:00 · 1414 阅读 · 0 评论 -
MYSQL--架构--MGR--部署--02--多主模式
| 角色 | IP | 主机名 |server_id |mysql版本 | 备注 || :------- | :------- | :------- |:------- |:------- || master | 192.168.187.177 | mysql01 | 1 | 8.0.22 | 主服务器,提供读写操作 || master | 192.168.187.178 | mysql02 | 2 | 8.0.22 | 主服务器,提供读写操作| master原创 2022-06-01 09:46:21 · 1101 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--15--系统变量
当发送故障时候,member-3会被选举为master,因为它的权重最高。在一组 5个 点(S1,S2,S3,S4,S5)中,如果(S1,S2)和(S3,S4,S5)之间存在断开,则存在网络分区。原创 2022-06-01 09:45:27 · 220 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--14--IP地址白名单
2、手动设置IP地址白名单可以任意组合指定主机名,简单IP地址或CIDR表示法。 必须以逗号分隔每个条目。 例如:原创 2022-06-01 09:44:28 · 661 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--13--监控
假设该组的一个成员被延迟,并且无法与该组的其他成员保持同步。 在这种情况下,您可能会在队列中看到大量事务。 根据此信息,您可以决定从组中删除该成员,或者对该组其他成员延迟事务处理,以减少排队事务的数量。用于监视在当前视图中跟踪的不同服务器实例的状态,或者换句话说,它们是组的一部分,因此由关系成员服务跟踪。此表中的某些字段显示有关组复制的信息。 例如,已从组接收并在应用程序队列(中继日志)中排队的事务。可以观察与Group Replication相关的通道和线程的状态。如果有许多不同的workers应用事务原创 2022-06-01 09:43:46 · 268 阅读 · 0 评论 -
MYSQL--架构--MGR--部署--01--单主模式
| 角色 | IP | 主机名 |server_id |mysql版本 | 备注 || :------- | :------- | :------- |:------- |:------- || master | 192.168.187.177 | mysql01 | 1 | 8.0.22 | 主服务器,提供读写操作 || slave | 192.168.187.178 | mysql02 | 2 | 8.0.22 | 从服务器,提供读操作 || slave原创 2022-06-01 09:46:11 · 1648 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--12--组内信息压缩
使用组复制需要有一个低延迟、高带宽的网络环境,因为业务越繁忙,组内节点数量越多,组内要传递的消息就越多。如果突然遇到一个非常大的事务(例如load data infile中的数据非常多),可能会让组复制非常慢。这个时候可以考虑开启组内信息压缩功能。以下设置开启了压缩功能,压缩的阈值为2M左右。当一个事务的消息超过2M时,就会将这个消息进行压缩。当组内其它节点收到了压缩的消息后,会进行解压,然后读取其中内容。3.2、下压缩和解压发生的时间点原创 2022-06-01 09:43:14 · 199 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--11--成员加组,离组
mysql原创 2022-06-01 09:42:26 · 321 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--10--视图更新
MYSQL–架构–MGR–理论–10–视图更新1、架构图2、binlog中的特殊事件:视图更新在binlog中,除了DDL语句、DCL语句(grant,revoke)语句、DML语句生成的事件,还有一种因组复制而存在的特殊事件:视图更新事件(view change)。这个视图就是指成员管理服务3、成员管理服务(成员视图)在组复制插件中,有一个内置的服务,称为"成员管理服务"(group membership service)。也叫成员视图可以在任何给定的时间点保持组的视图一致并可供所原创 2022-05-31 19:51:36 · 482 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--09--小心DDL语句
MYSQL–架构–MGR–理论–09–小心DDL语句1、架构图2、DDL语句2.1、定义DDL(Data Definition Language)主要用于对数据库对象进行操作的过程,主要下面四个关键字完成。1. create(添加)2. alter(修改)3. drop(删除)4. truncate(删除)2.2、举例# 创建一个名为test的数据库create database test; # 创建一个表test01create table test01 ( id原创 2022-05-31 19:49:58 · 253 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--08--如何执行事务
MYSQL–架构–MGR–理论–08–如何执行事务1、架构图2、如何执行单个事务2.1、场景MGR组中有5个节点(s1、s2、s3、s4、s5)了,这些节点目前全都是ONLINE状态,这个状态表示能正确向外提供服务、能正确进行组内通信、能正确投票。s1是单主模型的主节点。当在节点s1上执行了以下事务A1# 开启事务start transaction;# 插入数据insert into t values(3);# 事务提交commit;2.2、说明s1称为事原创 2022-05-31 19:49:19 · 525 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--07--新节点如何加入组
MYSQL–架构–MGR–理论–07–新节点如何加入组1、架构图2、加入组如果一个新的节点要加入组,它首先要将自己的数据和组内的数据保持同步2.1、加入组的 指令新节点要加组,在配置好配置文件后,只需执行以下3个过程等待成功返回就可以了。# 设置通信管道change master to master_user='XXXX', master_password='YYYY' for channle 'group_replication_reco原创 2022-05-31 19:47:35 · 417 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--06--如何创建组
MYSQL–架构–MGR–理论–06–如何创建组1、架构图2、创建组2.1、引导节点第1个节点启动组复制功能之前,一般会将这个节点设置为组的引导节点,这不是必须的,但除非特殊调试环境,没人会吃撑了用第2、第3个节点去设置为组的引导节点。2.2、组的引导节点这个节点会创建组,组创建之后,其他节点才能加入到组中。2.2.1、将节点设置为引导节点的 指令set global group_replication_bootstrap_group=on;2.3、创建组 常用操作# 将节点设原创 2022-05-31 19:46:02 · 436 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--05---单主模式深入
MYSQL–架构–MGR–理论–05—单主模式深入1、原理组复制一切正常时,所有的写操作都路由到s1节点上,所有的读操作都路由到s2、s3、s4或s5上。当s1节点故障后,组复制自动选举新的master节点。假如选举s2为新master成功后,s3、s4和s5将指向s2,写操作将路由到s2节点上。至于如何改变客户端的路由目标,这不是组复制应该考虑的事情,而是客户端应用程序应该考虑的事情。实际上,更好的方式是使用中间件来做数据库的路由,比如MySQL Router、ProxySQL、amoeb原创 2022-05-31 19:45:19 · 198 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--04--事务和冲突检测机制
MYSQL–架构–MGR–理论–04–事务和冲突检测机制1、MGR 集群中事务的生命周期1.1、MGR集群(MGR 组复制 技术示意图)MGR集群由DB1,DB2,DB3构成集群中每个DB都有 MGR层1.1.1、MGR层功能组成Paxos模块基于 Paxos 算法确保所有节点收到相同广播消息广播消息的内容结构:transaction messageCertify模块(冲突检测)进行冲突检测确保数据最终一致性冲突检测中内存结构:certification info原创 2022-05-31 19:44:30 · 1117 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--03--要求和限制
MYSQL–架构–MGR–理论–03–要求和限制1、MGR要求1.1、基础结构1.1.1、InnoDB 存储引擎数据必须存储在InnoDB事务存储引擎中。事务以乐观方式执行,然后在提交时检查冲突,如果存在冲突,为了保持整个组的一致性,一些事务将被回滚。 这意味着需要事务存储引擎。InnoDB还提供了一些附加功能,可以在与Group Replication一起操作时更好地管理和处理冲突。1.1.2、主键每个表必须具有已定义的主键或等效的主键,其中等效项是非null唯一键。这些key需原创 2022-05-31 19:42:20 · 870 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--02--架构
MYSQL–架构–MGR–理论–02–架构1、架构图1.1、主要组成APIs接口层组件层复制协议模块层GCS API+Paxos 引擎层1.2、事务进入 MGR 层内部处理过程应用发来的事务从 MySQL Server 经过 MGR 的 APIs接口层 分发到组件层。组件层去 处理 事务相关信息,然后经过复制协议层进行事务传输,最后经过 GCS API+Paxos 引擎层保证事务在各个节点数据最终一致性2、单主模式(single-primary mode)2.1、介绍原创 2022-05-31 19:39:01 · 696 阅读 · 0 评论 -
MYSQL--架构--MGR--理论--01--MGR是什么
MYSQL–架构–MGR–理论–01–MGR是什么1、MGR是什么MGR(MySQL Group Replication)是以插件形式推出的主从复制高可用技术MGR基于原生的主从复制,将各节点归入到一个组中,通过组内节点的通信协商(组通信协议基于Paxos算法),实现数据的强一致性、故障探测、冲突检测、节点加组、节点离组等等功能。适用金融场景:支付,证券交易,保险,银行等金融场景。因为这些场景要求数据必须做到零丢失,数据库可用性在4个9,甚至5个9(年度停机时间不超过5分钟)。提供了高一致性原创 2022-05-31 19:21:50 · 3942 阅读 · 0 评论 -
MYSQL--架构--理论--01--高可用方案的优缺点、选型
MYSQL–架构–理论–01–高可用方案的优缺点、选型高可用考虑点如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。一、主从或主主半同步复制使用双节点数据库,搭建单向或者双向的半同步复制。在5.7以后的版本中,由于lossless原创 2022-05-04 13:58:03 · 699 阅读 · 0 评论 -
MYSQL--基础--10--慢查询日志
MySQL–慢查询日志1、是什么是MySQL提供的一种日志记录,支持将日志记录写入文件将SQL查询时间超过(大于)设置阈值的语句,记录到慢查询日志中。2、查看语句2.1、慢日志是否开启和日志文件位置show variables like '%slow_query_log%';2.2、慢日志阈值show variables like '%long_query_time%';2.3、查询当前系统有多少条慢查询记录show global status like '%Slow_qu原创 2022-05-01 16:21:37 · 7243 阅读 · 0 评论 -
MySQL--环境搭建--1.2--生产--通过tar.gz包安装mysql
MySQL–环境搭建–生产–1.2–通过tar.gz包安装mysql1、前提使用hd用户登陆完成基础环境搭建 https://blog.youkuaiyun.com/zhou920786312/article/details/1182123022、准备工作2.1、下载资源包 wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.22-el7-x86_64.tar.gz 2.2、安装MySQL依赖包libaosudo yum insta原创 2022-04-17 15:44:39 · 533 阅读 · 0 评论 -
MySQL--环境搭建--05--生产--高可用的双机热备
MySQL–环境搭建–生产–05–高可用的双机热备1、前提使用hd用户登陆完成基础环境搭建 https://blog.youkuaiyun.com/zhou920786312/article/details/118212302MySQL--环境搭建--生产--01--通过rpm安装mysql https://blog.youkuaiyun.com/zhou920786312/article/details/115252051MySQL--环境搭建--生产--04--主从复制+双主结构 https://blog原创 2022-03-18 13:18:18 · 178 阅读 · 0 评论 -
MYSQL--基础--09--备份还原常用命令
MySQL–备份还原常用命令1、数据库信息数据库地址:127.0.0.1数据库用户名:root数据库密码:1234数据库名称:test1数据库名称:test2数据库名称:test3mysqldump目录:/usr/bin/mysqldump备份目录:/root/db_back/2、备份2.1、备份全部数据库的数据和结构mysqldump -uroot -p1234 -A > /root/db_back/all.sql2.2.备份全部数据库的结构mysqldum原创 2022-03-08 15:23:50 · 3462 阅读 · 0 评论 -
MySQL--基础--1.2--命令--mysqldump
MySQL–mysqldump命令详解1、数据库信息数据库地址:127.0.0.1数据库用户名:root数据库密码:1234数据库名称:test1数据库名称:test2数据库名称:test3mysqldump目录:/usr/bin/mysqldump备份目录:/root/db_back/2、命令mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2.... > 备份文件.sql2.1、–all-databases , -A导出全部数据库。my原创 2022-03-08 15:16:42 · 76574 阅读 · 5 评论 -
MYSQL--基础--8.2--my.cnf--调优
【代码】MYSQL--基础--8.2--my.cnf--调优。原创 2021-12-01 11:38:11 · 392 阅读 · 0 评论 -
MYSQL--基础--8.1--my.cnf--配置说明
一、client客户端默认的连接参数配置port = 3307默认连接端口socket = /data/mysqldata/3307/mysql.sock用于本地连接的socket套接字default-character-set = utf8mb4编码二、mysqld服务端基本设置port = 3307MySQL监听端口socket = /data/mysqldata/3307/mysql.sock为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件pid-file =原创 2021-11-30 09:35:49 · 3455 阅读 · 0 评论 -
MySQL--主从复制--04--主从同步的延迟等问题、原因及解决方案
一、相关参数1.1、同步的参数首先在服务器上执行"show slave satus;",可以看到很多同步的参数Master_Log_FileSLAVE中的I/O线程当前正在读取的主服务器二进制日志文件的名称Read_Master_Log_Pos在当前的主服务器二进制日志中,SLAVE中的I/O线程已经读取的位置Relay_Log_FileSQL线程当前正在读取和执行的中继日志文件的名称Relay_Log_Pos在当前的中继日志中,SQL线程已读取和执行的位置Relay_Master_L原创 2021-11-30 09:35:13 · 1547 阅读 · 0 评论 -
MySQL--主从复制--03--复制方式
一、原理图1.1、异步复制(主从复制)1.2、半同步复制(mysql semi-sync)这种模式下主节点只需要接收到其中一台从节点的返回信息,就会commit;否则需要等待直到超时时间然后切换成异步模式再提交;半同步复制 可以使主从数据库的数据延迟缩小,可以提高数据安全性,确保了事务提交后,binlog至少传输到了一个从节点上,不能保证从节点将此事务更新到db中。性能上会有一定的降低,响应时间会变长。1.3、并行复制社区版5.6中新增并行是指从库多线程 获取 binlog原创 2021-11-30 09:34:34 · 404 阅读 · 0 评论 -
MySQL--主从复制--02--复制类型
MySQL–主从复制–02–复制类型一、复制类型1.1、基于语句的复制 (SBR:Statement-base Replication)在Master上执行的SQL语句,在Slave上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时,会自动选着基于行的复制优点只需要记录会修改数据的sql语句到binlog,减少binlog日志量(如果修改了一个表的记录,也只是一条SQL的记录),节约I/O 。不仅能用于复制,还能实时还原数据库。因为它记录了所有的SQ原创 2021-11-30 09:33:21 · 1028 阅读 · 0 评论 -
MySQL--主从复制--01--原理
MySQL–主从复制–01–原理一、故事爸爸在酒店做厨师,正准备做西红柿炒蛋,妈妈也想做,于是让女儿给爸爸打电话,爸爸接到电话后,于是就把他目前正在做的事情(洗菜,切菜),告诉女儿。女儿记在笔记里。妈妈看笔记,按笔记的内容做菜。就这样爸爸那边做好菜,妈妈这边也做好菜了。有的时候妈妈做菜很快,妈妈就让女儿不写笔记,直接告诉她步骤。有的时候女儿记笔记的速度,赶上爸爸说的步骤,女儿就自己玩。直到爸爸通知她二、架构图2.1、图中字段解读master–write只有写的操作,才会发生主从复制原创 2021-11-30 09:32:56 · 925 阅读 · 0 评论 -
MYSQL--基础--07--使用binlog来恢复数据
我们看到delete_rows 结束点是2001这个点,起始点是在1806这个点,我们可以把操作的这些数据删除到我们上次备份的内容,然后通过执行binlog来进行恢复,当然恢复到1806这个点之前。我们先来刷新binlog日志,生成一个新的日志,那么我们之后所要操做的内容都会被记录到新的日志文件中,我们只需要对旧的日志做恢复就行了。我们发现,删除数据后,我们插入的数据没显示,这个时候需要通过同样的方法,使用binlog.000002 日志来恢复。恢复前,先刷新日志,产生新日志binlog.000003,原创 2021-08-12 14:37:42 · 377 阅读 · 0 评论 -
MYSQL--基础--06--delete删除数据,磁盘空间未释放的解决办法
【代码】MYSQL--基础--06--delete删除数据,磁盘空间未释放的解决办法。原创 2021-08-12 14:34:12 · 5827 阅读 · 0 评论 -
MYSQL--基础--05--binlog日志文件过大
一、Mysql binlog 介绍mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句(除了数据查询语句)信息。如果mysql 运行很长一段时间,日志文件会非常大。二、解决方法2.1、修改my.cnf[mysqld]# 设置binlog清理时间,只保留30天的日志expire_logs_days = 30# binlog每个日志文件大小max_binlog_size = 100m# binlog缓存大小binlog_cache_size =原创 2021-08-12 14:32:44 · 6011 阅读 · 2 评论 -
MYSQL--基础--4.2--索引--数据结构--B+树
我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。原创 2021-08-12 14:27:48 · 604 阅读 · 0 评论 -
MYSQL--基础--03--练习题
以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90。最高分,最低分,平均分,及格率,中等率,优良率,优秀率。需要获取sid字段,选课总数,所有课程的总成绩。结果按人数降序排列,若人数相同,按课程号升序排列。同一表,同一字段比较,考虑自连接。同一表,同一字段比较,考虑自连接。同一表,同一字段比较,考虑自连接。原创 2021-08-11 19:26:05 · 461 阅读 · 0 评论