
Mysql
文章平均质量分 82
本栏目主要介绍Mysql数据库相关的知识和案例。
lhdz_bj
专注数据库实用技术,分享数据库实战经验。
展开
-
mysql中执行 linux shell命令(本地shell执行)
本文讲述了mysql中使用linux本地shell命令的方法,记录于此,供各位同学和自己参考学习。转载 2024-11-30 14:59:21 · 123 阅读 · 0 评论 -
Mysql真的没那么弱
本文通过一个Mysql中SQL语句的优化案例,详细讲解了Mysql中SQL优化的方法和步骤,同时,指出了学习Mysql时容易出现的误区,从而让大家对Mysql有一个正确、客观的认识,以引导大家正确的学习和掌握Mysql。原创 2024-07-23 11:29:04 · 853 阅读 · 0 评论 -
MySQL 5.7 - 通过 BINLOG 恢复数据
本文源自:MySQL 5.7 - 通过 BINLOG 恢复数据 - 来份锅包肉 - 博客园日常开发,运维中,经常会出现误删数据的情况。误删数据的类型大致可分为以下几类:使用 delete 误删行 使用 drop table 或 truncate table 误删表 使用 drop database 语句误删数据库 使用 rm 命令误删整个 MySQL 实例。不同的情况,都会有其优先的解决方案:针对误删行,可以通过 Flashback 工具将数据恢复 针对误删表或库,一般采用通过 BIN转载 2021-09-24 18:35:30 · 804 阅读 · 0 评论 -
mysqlbinlog 查看具体的sql语句 (binlog_format=row模式)
本文源自:mysqlbinlog 查看具体的sql语句 (binlog_format=row模式)_雅冰石的专栏-优快云博客当binlog_format=row时,用mysqlbinlog想查看二进制日志时需要加上-v参数。下面分别对比下加-v前与-v后不同的效果:mysql> use dba;Reading table information for completion of table and column namesYou can turn off this feature转载 2021-09-24 17:56:41 · 3550 阅读 · 0 评论 -
深度解析MySQL 5.7之中文全文检索
本文源自:http://www.manongjc.com/article/147542.html时间:2019-03-24本文章向大家介绍深度解析MySQL 5.7之中文全文检索,主要包括深度解析MySQL 5.7之中文全文检索使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。前言其实全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文。缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词转载 2021-08-27 17:27:45 · 689 阅读 · 0 评论 -
MySQL 之全文索引(fulltext)
本文源自:https://blog.youkuaiyun.com/mrzhouxiaofei/article/details/79940958最近在复习数据库索引部分,看到了 fulltext,也即全文索引,虽然全文索引在平时的业务中用到的不多,但是感觉它有点儿意思,所以花了点时间研究一下,特此记录。引入概念通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。你可能会说转载 2021-08-27 09:39:10 · 10725 阅读 · 0 评论 -
Mysql组复制(MGR)——技术细节
本文提供mysql组复制相关的更多技术细节。一. 组复制插件架构Mysql组复制是一个mysql插件,且其构建于已有mysql复制架构之上,其利用了类似二进制日志,基于行的日志及全局事务标识符等的特点。组复制与当前mysql框架集成到一起,像性能模式或插件和服务架构。下图提供了描述mysql组复制整体架构的框图。图1-1 组复制插件框图Mysql组复制包含一套用于控制插件如何与mysql服务器进行交互的捕获、应用和生命周期的API。有使信息从服务器流向插件或相反方向的接口。这些接口将my原创 2021-01-21 15:45:27 · 686 阅读 · 0 评论 -
Mysql组复制(MGR)——常问的问题
本文提供常被问到问题的答案。1.复制组中最多能有多少个mysql服务器?复制组最多包含9个mysql服务器。尝试向已有9个服务器的组添加另外的服务器将被拒绝。2.组内服务器间如何连接?组内服务器间通过打开端到端TCP连接进行。这些连接仅用于内部通信和组内服务器间的信息传递。该地址通过group_replication_local_address变量进行配置。3.group_replication_bootstrap_group选项的作用?Bootstrap标识指示成员创建一个组并作为原创 2021-01-06 15:13:18 · 554 阅读 · 0 评论 -
Mysql组复制(MGR)——前提及限制
本文将对组复制的前提条件和限制进行列举和解释。一.组复制前提想用组复制的服务器实例必须满足如下前提条件:1.基础架构1)InnoDB存储引擎。数据必须存储于InnoDB事务存储引擎。事务被乐观执行,且提交时,检查冲突。如果有冲突,为了维护组内一致性,某些事务会被回滚。这意味着需要一个事务存储引擎。然而,InnoDB提供某些另外功能以与组复制一起操作时能更好管理和处理冲突。2)主键。组复制的每张表必须有一个定义主键或主键等同物,这里,主键等同物为非空唯一键。需要该键作为表内每行数据的唯一标原创 2020-12-25 10:52:06 · 745 阅读 · 0 评论 -
Mysql组复制(MGR)——操作
该部分描述部署组复制的不同模式,解释管理组的常见操作,并提供关于如何调整组的信息。一.部署多主或单主模式组复制按照如下不同模式进行操作:1)单主模式。2)多主模式。默认模式为单主模式。组成员不可能部署在不同的模式,例如:一个配置为多主模式而另一个为单主模式。为了在两个模式间进行切换,组而非服务器需要以不同操作配置重启。不管部署模式,组复制并不处理客户端失败切换,那必须有应用自己进行处理,类似代理或路由器的连接器或中间件框架。当以多主模式部署时,语句被检查以确定其余该模式兼容。当组原创 2020-12-23 15:35:33 · 929 阅读 · 0 评论 -
Mysql组复制(MGR)——监控
使用性能模式(performance schema)表监控组复制,这里假设性能模式开启。复制组增加下列表:1)performance_schema.replication_group_member_stats2)performance_schema.replication_group_members下列性能模式复制表也显示有关组复制的信息:1)performance_schema.replication_connection_status2)performance_schema.repl原创 2020-12-21 14:29:12 · 548 阅读 · 0 评论 -
mysql组复制(MGR)——部署
mysql组复制作为插件提供给mysql服务器,组内的每个服务器都要求配置和安装该插件。本文提供创建一个至少3个服务器的复制组所需的详细步骤。一.部署单主模式的组复制组内的每个服务器实例能运行在独立或同一台机器上。该部分讲解如何用同一台物理机上的三个mysql服务器实例来创建一个复制组。这意味着需要3个数据目录,每个服务器实例一个,且需要对每个实例进行独立的配置。图1-1 组架构本文讲解如何得到和部署已安装组复制插件的mysql服务器,如何在创建一个组前配置每个服务器实例,以及如何使用性能模式原创 2020-12-18 15:56:30 · 493 阅读 · 2 评论 -
mysql组复制(MGR)——背景
本文提供mysql组复制相关的背景信息。创建容错系统的最常用方式是采用组件冗余方式,换句话说,就是组件能被移除且系统应该继续如期操作。这产生了一系列将系统复杂度上升到不同等级的挑战。特别是,复制数据库必须处理几个而非一个服务器维护和管理的事实。然而,因为服务器一起合作创建了几个其他经典分布式系统问题需要处理的组,像网络分区(network partitioning)或脑裂场景(split brain)。因此,最终挑战是将数据库和数据复制逻辑与几个服务器一致简单合作逻辑相融合。换句话说,使得几个服务器的系原创 2020-12-16 18:26:13 · 223 阅读 · 0 评论 -
MySQL5.6 GTID新特性实践
本文源自:http://cenalulu.github.io/mysql/mysql-5-6-gtid-basic/本文将简单介绍基于5.6 GTID的主从复制原理的搭建。并通过几个实验介绍相关故障的处理方式GTID简介什么是GTIDGTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。 GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递转载 2020-11-25 14:46:27 · 247 阅读 · 0 评论 -
mysql之 重建GTID下主从关系
本文源自:https://blog.youkuaiyun.com/weixin_34082789/article/details/93273500主库:mysqldump -uroot -pmysql -S /tmp/mysql.sock1 --single-transaction --add-drop-database --master-data=1 --all-databases>test_backup.sql说明:--all-databases :备份所有的数据库--single-trans转载 2020-11-20 10:07:56 · 431 阅读 · 0 评论 -
Galera Cluster for MySQL 详解(一)——基本原理
本文源自:https://blog.youkuaiyun.com/wzy0623/article/details/102522268目录一、同步复制二、Galera复制架构1. wsrep api2. 全局事务ID(global transaction id,GTID)3. Galera复制插件4. 组通信插件三、Galera复制工作原理四、状态转移1. 状态快照传输2. 增量状态转移3. 写集缓存(gcache)五、流控1. 流控原理2. 理解节点状态3转载 2020-11-02 16:21:41 · 797 阅读 · 0 评论 -
MySQL 命令行工具之 mysqldump 深入研究
本文源自:https://www.cnblogs.com/digdeep/p/4898622.htmlmysqldump 是MySQL的一个命令行工具,用于逻辑备份。可以将数据库和表的结构,以及表中的数据分别导出成:create database, create table, insert into的sql语句。当然也可以导出 存储过程,触发器,函数,调度事件(events)。不管是程序员,还是DBA都会经常使用的一个工具。1. mysqldump --helpmysqldump 的选项很多,我转载 2020-09-15 10:46:34 · 1257 阅读 · 0 评论 -
Mysql MHA搭建方法与步骤参考
1.简介 MHA(Master HA)是一款用于Mysql的开源高可用软件,其为Mysql主从复制架构提供了自动主节点失败切换(Automating Master Failover)。当MHA监控到Mysql Master节点发生故障时,其将拥有最新数据的Mysql Slave节点提升为新的Mysql Master节点。期间,MHA通过其他从节点获取额外信息避免发生一致性相关的问题。通过MHA,还可以进行Mysql Master节点的在线切换。 MHA作为一款较为成熟的Mysql高可用方案,最初由日.原创 2020-08-20 16:51:32 · 1151 阅读 · 0 评论 -
精美的MySQL/Mariab系统架构大图
原创 2020-07-09 14:51:49 · 300 阅读 · 0 评论 -
组复制(MySQL Group Replication)简介
1.简介本文提供mysql组复制的背景信息。创建一个容错系统的最常见的方法是求助于组件冗余,换句话说,组件能被移除,但系统将如期可以继续操作。这将整个系统的复杂度提升到了更具挑战性的级别。尤其是,复制库必须面对多个而非一个服务器维护和管理的问题。然而,这些服务器一起合作形成一个组,但必须面对几个其他经典分布式系统问题,像网络分区和脑裂等场景。所以,最终的挑战是将数据库和数据复制逻辑与几台协作的服务器逻辑按照一致简单的方式融合到一起。换句话说,就是让多个服务器的系统状态,数据和系统经历的每个改变都达成一原创 2020-06-23 15:10:53 · 510 阅读 · 0 评论 -
InnoDB中不同SQL语句设置的锁
锁定读,update,或delete一般会在SQL语句处理过程中扫描的每个索引记录上加记录锁。其并不关心排除该数据行的语句中是否有where条件。InnoDB并不记得准确的where条件,但仅知道被扫描的索引范围。锁定通常为下一键值锁,其将阻塞往锁定记录前的间隙插入数据的操作。然而,间隙锁能被显式关闭,从而引起下一键值锁不被使用。如果二级索引被用于查找且索引记录锁被设置为排他锁,InnoDB也会获取相应的簇索引记录并在其上加锁。如果SQL语句没有合适的索引可用,mysql必须扫描整张表来处理该语句,那原创 2020-06-12 11:30:55 · 306 阅读 · 0 评论 -
InnoDB锁机制(locking)
本文将描述InnoDB用到的锁类型。1)共享和排他锁(Shared and Exclusive Locks)。2)意向锁(Intention Locks)。3)记录锁( Record Locks)。4)间隙锁(Gap Locks)。5)下一键值锁(Next-Key Locks)。6)插入意向锁(Insert Intention Locks)。7)自动插入锁( AUTO-INC Locks)。8)空间索引谓词锁(Predicate Locks for Spatial Indexes)。.原创 2020-06-11 10:16:26 · 399 阅读 · 0 评论 -
MySQL InnoDB多版本机制(MVCC)
1.InnoDB多版本简介InnoDB为一个多版本存储引擎:为了支持像并发和回滚等事务特性,InnoDB保存被修改数据行的旧版本信息。这些旧版本信息存储于叫做回滚段(沿用Oracle中类似的数据结构)表空间内。InnoDB使用回滚段中的信息来进行事务回滚所需的取消操作。其也使用这些就版本信息来构建旧版本数据行来完成一致性读。内部地,InnoDB为数据库中存储的每个数据行增加了三个域。一个6字节db_trx_id域表示insert或update该数据行的最后事务的事务鉴定符。同时,delete操作内部也被当原创 2020-06-10 09:49:29 · 299 阅读 · 0 评论 -
Mysql数据库InnoDB架构
本文介绍InnoDB存储引擎架构的主要组件。1.缓冲池(Buffer Pool)缓冲池是数据访问时InnoDB在主内存中缓存表和索引数据的区域。缓冲池允许频繁访问的数据直接在内存中处理,这减速了处理的性能。专用数据库服务器上,通常将80%的物理内存分配给InnoDB缓冲池。为了改善大量读取操作的效率,缓冲池被分成可以存储多个数据行的数据页。为了提高缓冲管理的效率,缓冲池通过数据页链表实现。通过LRU的变种算法,较少使用的数据将因过期而被刷出缓冲。2.改变缓冲(Change Buffer)改变.原创 2020-06-09 10:47:41 · 253 阅读 · 0 评论 -
配置InnoDB缓冲池(Buffer Pool)大小
1.配置InnoDB缓冲池(Buffer Pool)大小当服务器正运行时,用户可以离线(启动时)或在线配置InnoDB缓冲池大小。这部分描述的行为适用这两种方法。当增加或减少innodb_buffer_pool_size时,该操作按照数据块(chunks)执行。数据块的大小通过innodb_buffer_pool_chunk_size配置选项进行定义,该选项默认为128M.缓冲池大小必须总是等于innodb_buffer_pool_chunk_size* innodb_buffer_pool_inst原创 2020-05-26 18:30:45 · 1131 阅读 · 0 评论 -
mysql_upgrade——检查和升级mysql表
1.mysql_upgrade简介mysql_upgrade检查所有数据库中与mysql服务器当前版本不兼容的所有表。mysql_upgrade也会升级系统表,以便你能使用新添加的权限或功能。如果mysql_upgrade发现一张表可能不兼容,将该表进行检查,如果发现问题,则试图对其进行修复。如果不能修复,则需要人工进行表和索引的重建或修复。每次升级mysql,都需要运行mysql_upgrade。从mysql5.7.5开始,mysql_upgrade直接与mysql服务器进行通信,向其发送发送特定S原创 2020-05-25 16:18:22 · 11645 阅读 · 0 评论 -
降级MySQL(参考MySQL官方文档)
本文源自:https://www.rongsoft.com/article/2020/03/121010382935/介绍降级MySQL安装的步骤。降级比升级更不常见。降级通常是由于生产系统上发生兼容性或性能问题而执行,并且在测试系统的初始升级验证期间没有发现。与升级过程一样,在生产系统上使用降级过程之前,请先在某些测试系统上执行并验证它。注意在下面的讨论中,必须使用具有管理权限的MySQL帐户运行的MySQL命令,在命令行中包含-u root以指定MySQL root用户。需要r.转载 2020-05-18 17:18:45 · 656 阅读 · 0 评论 -
Mysql数据库InnoDB缓冲池(Buffer Pool)
1.InnoDB缓冲池简介InnoDB在内存中维护一个叫做缓冲池的存储区域来缓存数据和索引。了解InnoDB缓冲区如何工作,如何利用它来在内存中保存被频繁访问的数据,对Mysql调优至关重要。可以对InnoDB缓冲的各方面进行配置来改善Mysql的性能。1)理想来讲,可以将缓冲池设置为实际需要的值,为服务器上运行的其他进程保留足够内存以防发生过度也交换。缓冲池越大,InnoDB就越像一个内存库...原创 2020-05-07 11:00:11 · 736 阅读 · 1 评论 -
聊聊MySQL、HBase、ES的特点和区别
本文源自:https://www.jianshu.com/p/4e412f48e820互联网时代各种存储框架层出不穷,眼花缭乱,比如传统的关系型数据库:Oracle、MySQL;新兴的NoSQL:HBase、Cassandra、Redis;全文检索框架:ES、Solr等。如何为自己的业务选取合适的存储方案,相信大家都思考过这个问题,本文简单聊聊我对Mysql、HBase、ES的理解,希望能和大...转载 2020-04-28 10:53:59 · 597 阅读 · 0 评论 -
mysql服务器和服务器启动程序
本文介绍mysql服务器mysqld,以及几个用来启动mysql服务器的程序。1.mysqld — mysql服务器mysqld,也叫mysql服务器,其为mysql安装时完成大部分工作的主程序。mysql服务器管理对包含数据库和表的数据目录的存取。数据目录也是像日志文件和状态文件等其他信息的默认位置。--注意:某些安装包包含叫做mysqld-debug的服务器的调试版本。运行这个而版本...原创 2020-04-12 13:15:52 · 375 阅读 · 0 评论 -
一台物理机上运行多个mysql实例(Running Multiple MySQL Instances on One Machine)
1.简介某些场景下,也许想在一台物理机上运行多个实例。你也许想测试新发布的mysql版本,同时,保持已有的生产环境不被干扰。或者,你也许想让不同的用户去访问他们自己管理的mysql实例。(例如:你也许是inernet服务供应商,想为不同的客户提供独立的mysql安装。)每个实例可以使用不同的mysql服务器二进制程序,或者,也可以多个实例共用同一份二进制程序,或者二者兼而有之的组合。例如:你也...原创 2020-04-05 17:30:38 · 483 阅读 · 0 评论 -
mysql5.7主从切换(master/slave switchover)
本文源自:https://www.cnblogs.com/ctypyb2002/p/9793012.html切换前192.168.56.100 master192.168.56.200 slave切换后192.168.56.100 slave192.168.56.200 masterMySQL [(none)]> select version();+-----...转载 2020-04-03 15:37:02 · 1836 阅读 · 0 评论 -
选项文件(Option Files)/配置文件(Configuration Files)的使用
大多数MySQL程序能从选项文件(有时称为配置文件)中读取启动选项.运行程序时,为了不必在命令行输入常用选项,选项文件为确定这些常用选项提供了一个方便的途径.为了决定程序是否读取选项文件,可以--help选项运行该程序.(对mysqld,使用--verbose和--help,二者缺一不可.)如果读取选项文件,返回的帮助信息会指示它将寻找哪个文件,以及遵从的选项组.--注:带有--no-def...原创 2020-03-27 15:24:19 · 1179 阅读 · 0 评论 -
一次“诡异”的mysql死锁问题
下面是mysql error.log中有关死锁部分的信息:2020-02-11T15:09:21.788043+08:00 2341233 [Note] InnoDB: Transactions deadlock detected, dumping detailed information.2020-02-11T15:09:21.788055+08:00 2341233 [Note] Inno...原创 2020-02-11 22:57:56 · 404 阅读 · 0 评论 -
Mysql SQL优化系列之——执行计划连接方式浅释
关系库SQL调优中,虽然思路都是一样的,具体方法和步骤也是大同小异,但细节却不容忽视,尤其是执行计划的具体细节的解读中,各关系库确实有区别,特别是mysql数据库,与其他关系库的差别更大些,下面,我们仅就SQL执行计划中最常见的连接方式,做以下简要介绍和说明。system :asystemtablewhichisaconstanttable(访问一个常量系统表); con...原创 2018-09-20 11:50:28 · 464 阅读 · 0 评论 -
Mysql for Linux安装配置之—— 源码安装
1.安装--假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源码压缩文件1)先安装cmake(mysql5.5以后是通过cmake来编译的) # tar -zxv -f cmake-2.8.4.tar.gz # cd cmake-2.8.4 # ./configure # make # make install2)...原创 2018-09-03 16:45:07 · 303 阅读 · 0 评论 -
Mysql for Linux安装配置之—— rpm(bundle)安装
本文详细记录了rpm安装mysql的方法和步骤,记录于此,供各位同学及自己参考学习。原创 2018-09-04 10:46:47 · 751 阅读 · 0 评论 -
Mysql for Linux安装配置之——二进制安装
本文通过实例,详尽介绍说明了通过mysql二进制安装包,进行mysql安装配置的方法和步骤。原创 2018-09-04 10:18:15 · 390 阅读 · 0 评论 -
调整innodb redo log files数目和大小的具体方法和步骤
相较于Oracle的在线调整redo日志的数目和大小,mysql这点则有所欠缺,即使目前的mysql80版本,也不能对innodb redo日志的数目和大小进行在线调整,下面仅就mysql调整innodb redo log files数目和大小的具体方法和步骤进行说明。1.停止mysql服务器,并确信对其进行了正常关闭;2.编辑my.cnf文件以对其中的redo log file相关配置...原创 2018-08-10 14:59:51 · 1157 阅读 · 0 评论 -
浅谈mysql中各种表空间(tablespaces)的概念
mysql中,会涉及到各种表空间的概念,虽然,很多方面这些概念和Oracle有相似性,但也有很多不同的地方,初学者很容易被这些概念弄的晕头转向,从而,混淆这些概念的区别和理解,下面,就简要介绍和说明一下这些表空间的概念。1.系统表空间(System Tablespace) innodb系统表空间包含innodb数据字典(innodb相关对象的元数据),同时,双写缓冲(doublewri...原创 2018-08-10 14:28:13 · 3670 阅读 · 0 评论