![](https://img-blog.csdnimg.cn/20201103152217533.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
文章平均质量分 57
学习与实践分享
请给我的爱人一杯mojito
所以,人这一辈子,只有健康的身体是一切的根基。
透支了健康的人生,可能就是再也没有来日。
展开
-
MySQL初始化之后启动报错(mysqld: Table ‘mysql.plugin‘ doesn‘t exist)
初始化之后,服务无法启动。原创 2023-10-26 14:18:40 · 5055 阅读 · 0 评论 -
MySQL 安装包下载
下载MySQL安装包原创 2023-01-25 11:41:22 · 1243 阅读 · 0 评论 -
Xtrabackup备份如何保证数据一致性
环境信息MySQL 5.7.32xtrabackup version 2.4.22全备命令xtrabackup --defaults-file=/data/mysql/etc/6802/my.cnf ---host=127.0.0.1 --socket=/data/mysql/data/6802/mysqld.sock --port=6802 --user=admin --password='123456' --backup --no-timestamp --target-dir=/tools/b原创 2022-03-20 18:10:55 · 1356 阅读 · 0 评论 -
mysqlbackup企业版物理备份工具使用
MySQL Enterprise Backup 简称MEBMEB8 对应的是MySQL8.0版本 (8.0.28),备份工具的版本和MySQL版本要一致。MEB8 新特性 参考链接 https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/what-is-new.htmllink部分信息:不再支持脱机备份。备份服务器的二进制日志。备份副本服务器的中继日志。对于 MySQL Enterprise Backup 8.0.19 及更高版本:原创 2022-03-17 11:22:26 · 1478 阅读 · 0 评论 -
Mysqldump使用场景
优点缺点场景逻辑备份,版本兼容性好。原生备份工具,备份恢复使用体验好。单线程备份,耗时比较长。所有内容放在一个文件,不利于单表恢复。一般小于50G的数据库适合使用。升级或迁移数据时版本跨度大适合使用。因为备份是SQL语句,可以在不同数据库产品中使用。场景1 --all-database 备份带有以下参数进行--all-database 备份/data/mysql/base/5.7.32/bin/mysqldump -uroot -S/data/mysql/data/680...原创 2022-03-17 10:56:20 · 1056 阅读 · 0 评论 -
MySQL8.0之后P_S库组复制状态查询
MySQL8.0之后P_S库组复制状态查询文章目录MySQL8.0之后P_S库组复制状态查询测试版本MySQL8.0.27 shell搭建MGR-- 查看MGR集群角色及状态select * from performance_schema.replication_group_members;SHOW STATUS LIKE 'group_replication_primary_member'; # 查看主节点show variables like '%group_replication原创 2021-10-20 18:28:15 · 358 阅读 · 0 评论 -
MySQL技术内幕
MySQL技术内幕文章目录MySQL技术内幕1 后台线程2 缓冲池(innodb_buffer_pool)3 表1 后台线程Master Thread主要负责将缓冲池中的数据异步刷新到磁盘,保证数据一致性,包括脏页的刷新,合并插入缓冲区(insert bufffer),undo页的回收等。Purge Thread回收已经使用并分配的undo页,innodb_purge_threads=4Page Cleaner Thread将脏页的刷新操作放到单独的线程中来完成,减轻Mast原创 2021-10-06 16:43:39 · 323 阅读 · 0 评论 -
MyFlash回滚DML操作
MyFlash文章目录MyFlash1 安装2 使用3 参数说明1 安装#限制binlog格式必须为row,且binlog_row_image=full仅支持5.6与5.7 (自测8.0的binlog也可以部分解析)`只能回滚DML(增、删、改)`binlog闪回工具有binlog2sql、myflash1、用binlog2sql恢复dml操作,但需要伪装slave读取binlog读取系统表等操作,恢复速度比较慢2、美团技术团队开发了myflash工具,这个工具直接对binlog文件内原创 2021-08-04 20:26:23 · 148 阅读 · 0 评论 -
《MySQL DBA 工作笔记》简记
MySQL DBA 工作笔记文章目录MySQL DBA 工作笔记1 DDL2 GTID3 主从数据同步4 MHA5 InnoDB Cluster6 MyCAT1 DDL1.online DDL 3种方式:copy,会创建临时表,并记录增量。inplace,不创建临时表,对当前的数据文件进行修改defaul,根据参数old_alter_table判断,默认是OFF,表示采用inplace2.pt-osc 常用2 GTIDselect * from gtid_executed; &原创 2021-08-01 21:48:55 · 727 阅读 · 0 评论 -
《MySQL排查指南》简记
排查指南文章目录排查指南1 记录查询2 select 优化,索引会降低数据更新的效率(特别是insert),要从整个业务的性能出发3 perror + mysql error code4 主从数据不一致(复制不检查数据一致性)5 慢查询6 构建测试数据7 查询Handler_%8 日志9 表损坏10 并发11 死锁12 元数据锁13 hang14 复制15 sql_mode16 Max_allowed_packet17 secure_file_priv18 open_files_limit19 服务器启动原创 2021-07-31 22:27:31 · 268 阅读 · 0 评论 -
mysql 面试总结1
背景mysql复制相关写在前面记录部分内容,并且参考官方文档,链接为https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.htmllinkMySQL 复制的线程有几个及之间的关联?MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程):1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到 slave;2. Slave 上面的 I原创 2021-04-20 16:05:39 · 120 阅读 · 4 评论 -
Clickhouse安装
背景代替历史库,测试Clickhouse。本文只进行单机版的安装。写在前面参考链接为https://cloud.tencent.com/developer/article/1795091?from=information.detail.clickhouse%E4%BC%98%E7%82%B9%E7%BC%BA%E7%82%B9linkinstallyum install -y curlcurl -s https://packagecloud.io/install/repositories/al转载 2021-04-13 19:25:33 · 125 阅读 · 0 评论 -
MySQL索引基础续
背景承接上文MySQL索引基础,本文讨论查询优化(Query optimization)写在前面参考文章http://blog.codinglabs.org/articles/theory-of-mysql-index.htmllink示例数据库为了讨论索引策略,需要一个数据量不算小的数据库作为示例。本文选用MySQL官方文档中提供的示例数据库之一:employees。这个数据库关系复杂度适中,且数据量较大。下图是这个数据库的E-R关系图(引用自MySQL官方手册):MySQL官方文档中关转载 2021-04-08 17:17:13 · 109 阅读 · 0 评论 -
MySQL索引基础
背景MySQL索引背后的数据结构及算法原理写在前面参考文章http://blog.codinglabs.org/articles/theory-of-mysql-index.htmllink索引的本质索引是数据结构。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法。例如二分查找(binary search)、二叉树查找(binary tree search)等。例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组转载 2021-04-01 14:20:26 · 152 阅读 · 0 评论 -
MySQL processlist中哪些状态要引起关注
背景show processlist解读写在前面参考文章http://ourmysql.com/archives/1436link状态建议copy to tmp table执行ALTER TABLE修改表结构时建议:放在凌晨执行或者采用类似pt-osc工具Copying to tmp table拷贝数据到内存中的临时表,常见于GROUP BY操作时建议:创建适当的索引Copying to tmp table on disk临时结果集太大,内存中放不下,需要将内转载 2021-03-26 13:11:37 · 70 阅读 · 0 评论 -
Mycat 安装
背景为实现分库分表1.JDK install1.删除之前的版本rpm -qa|grep javarpm -e --nodeps *2.解压之后mv jdk1.7.0_79/ /usr/local/3.环境变量export PATH=$PATH:/usr/local/mysql8.0.23/bin:/usr/local/jdk1.7.0_79/bin:/usr/local/mycat/binexport JAVA_HOME=/usr/local/jdk1.7.0_79export原创 2021-03-11 18:19:07 · 74 阅读 · 0 评论 -
(Mycat入门篇)按照月份分布数据
背景按自然月分片的规则写在前面原文链接http://www.fullstackyang.com/mycatxi-lie-zhi-yi-shu-ju-fen-pian-ru-men-shi-zhan/link和参考文档不同之处源文档:现在假设系统的数据库为messagedb,里面只有2张表,一张表为消息表:message,一张表示消息来源的字典表:source 一共3个mysql实例各自需要创建4个数据库本文:一共2个mysql实例各自1个库 。mysql版本5.7 mycat原创 2021-03-11 18:09:35 · 432 阅读 · 0 评论 -
(Mycat入门篇)文档学习笔记01
背景基于官方社区文档(为避免遗漏,建议您查阅原文)写在前面原文链接首页https://www.yuque.com/books/share/0576de75-ffc4-4c34-8586-952ae4636944linkMycat闪耀登场Mycat的前身是OpencloudDBMycat是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的的Server前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生(转载 2021-03-08 17:02:48 · 91 阅读 · 0 评论 -
(Mycat入门篇)文档学习笔记
背景基于官方社区文档(为避免遗漏,建议您查阅原文)写在前面原文链接首页https://www.yuque.com/books/share/0576de75-ffc4-4c34-8586-952ae4636944link目录信息:入门篇-1-3OLTP和OLAP联机事务处理(OLTP)也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。联机分析处理(OLAP)是指通过多维的方式对数据进行分析、查询和报表,可以同数据挖掘工具、统计分析工转载 2021-03-08 16:23:05 · 154 阅读 · 0 评论 -
MySQL查询优化
背景数据库性能优化写在前面原文链接为https://www.modb.pro/doc/21032 (杨明翰)link怎么发现和定位慢SQL• 从当前查询中获取问题SQL• 从慢日志中获取问题SQL (常用方式)• sys schema相关视图中获取问题SQL• 从当前查询中获取问题SQL查看MySQL服务器内部当前线程正在执行的操作• 除非具有process权限,否则只能看到自己发起的线程信息• Select * from information_Schema.processli原创 2021-03-05 17:41:53 · 139 阅读 · 0 评论 -
percona toolkit系列 02(pt-osc的--null-to-not-null参数说明)
背景承接percona toolkit系列 01(pt-osc)中,进行--null-to-not-null参数扩展写在前面(推荐阅读原文)写本篇的原因是,看到一篇更好的原文。链接为https://www.cnblogs.com/ivictor/p/14347901.htmllink原文精华为了使pt-osc顺利运行,需要注意以下内容:1.表设计是不要包含null,可代替为default 02.--null-to-not-null选项添加,是忽略1048错误。结构为,对于字符类型的列,会填充原创 2021-03-04 15:21:24 · 230 阅读 · 4 评论 -
(基础)MySQL 故障分析 需要抽取那些信息
背景数据库故障时的处理步骤写在前面(推荐阅读)原文链接https://www.modb.pro/db/41601link采集信息,进行分析问题。问题包括:TPS突然下降到 0连接数直接爆满error日志无记录突然hang住数据库服务不停的重启内存曲线是上升,最后OOM操作监控,日志优先1.基础信息包含OS信息,mysql版本,高可用,参数设置mysql -uroot -p -S /tmp/mysql.sock -e "\s;show global variables;原创 2021-03-03 14:24:20 · 129 阅读 · 0 评论 -
(基础)MySQL实用SQL语句
背景用于问题诊断写在前面(推荐阅读)原文链接为https://www.modb.pro/db/40447link操作读者需要根据实际参数,以下参数5.7和8.0存在不同,修改以下模板。kill 的是PROCESSLIST_ID1.连接相关查看某用户连接的会话级别参数设置及状态变量,用于观测其它会话连接行为,辅助定位连接类问题例:查看用户连接 ID 为 18 的字符集设置,也可不指定 PROCESSLIST_ID 条件,查看所有用户连接SELECT T1.VARIABLE_NAME,原创 2021-03-02 18:38:16 · 171 阅读 · 0 评论 -
项目05(Mysql升级07Mysql5.7.32升级到Mysql8.0.22)
背景《承接上文,项目05(Mysql升级06Mysql5.6.51升级到Mysql5.7.32)》,写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。参考文档https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.htmllink推荐阅读以上链接,因为对应以下问题,有详细的建议。官方文档:不得存在以下问题:0.不得有使用过时数据类型或功能的表。不支持就地升级到MySQL 8.0,如果表包含在预5.6.4格原创 2021-03-01 17:54:47 · 269 阅读 · 0 评论 -
项目05(Mysql升级06Mysql5.6.51升级到Mysql5.7.32)
背景《承接上文,项目05(Mysql升级05Mysql5.5.62升级到Mysql5.6.51)》,写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。逻辑升级命令介绍详见上文1.mysqlcheck --defaults-file=/etc/my.cnf -u root -p --all-databases --check-upgrade2.mysqldump --socket=/tmp/mysql5.6.51.sock -u root -p --add-drop-table原创 2021-03-01 13:27:47 · 184 阅读 · 2 评论 -
(基础)[Mysqld]参数init-connect+binlog完成审计功能
背景MySQL日志审计(社区版无审计插件的情况下,通过库表记录用户登录信息+binlog查看用户的操作)原因:基于插件的审计目前存在于Mysql的企业版、Percona和MariaDB上,但是mysql社区版本有提供init-connect选项,基于此我们可以用它来完成审计功能。写在前面原文链接https://www.cnblogs.com/zejin2008/p/5756192.htmllinkinit-connecthttp://dev.mysql.com/doc/refman/5.7原创 2021-02-26 15:27:55 · 240 阅读 · 0 评论 -
(基础)Mysql主库5.6版本低于从库5.7时的问题一则
背景主库有大量数据更新100W+,导致从库(sql_thread失败)Last_SQL_Errno: 1755写在前面原文链接https://www.cnblogs.com/ajiangg/p/9399892.htmllink环境介绍GTID复制,主库5.6.51(基于database的复制),从库5.7.32(基于并行复制LOGICAL_CLOCK)不推荐主从版本不一致的架构问题复现对应少了数据更新,主从同步正常。大数据量变更之后,从库报错Last_SQL_Errno: 1755原创 2021-02-25 18:01:01 · 243 阅读 · 0 评论 -
(基础)Mysql数据库性能提升01
背景优化数据库性能写在前面主要内容的链接https://bbs.51cto.com/thread-10961-1.htmllink临时表相关https://www.cnblogs.com/mikeluwen/p/7651144.htmllink以下是部分内容的总结和注释数据库设计1.选取最适用的字段属性2.应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。3.例如“省份”或者“性别”,我们可以将它们定义为ENUM类型。因为在MySQL中,E原创 2021-02-23 17:13:52 · 120 阅读 · 0 评论 -
(基础)InnoDB存储引擎text和blob类型的优化
背景对于已存在的text或者blob字段写在前面原文链接https://www.cnblogs.com/phpper/p/7586616.htmllink前期知识1.1 在InnoDB 1.0.x版本之前,InnoDB 存储引擎提供了 Compact 和 Redundant(Redundant 格式是为兼容之前版本而保留的) 两种格式来存放行记录数据,compact 和 redundant 合称为Antelope (羚羊)对于blob,text,varchar(5120)这样的大字段,inn原创 2021-02-22 17:28:15 · 261 阅读 · 0 评论 -
(基础)mysql replace into语句
背景replace语句在一般的情况下和insert差不多,但是如果表中存在primary 或者unique索引的时候,如果插入的数据和原来的primary key或者unique相同的时候,会删除原来的数据,然后增加一条新的数据,所以有的时候执行一条replace语句相当于执行了一条delete和insert语句。写在前面原文链接https://www.cnblogs.com/phpper/p/7586616.htmllink例子新建一个test表,三个字段,id,title,uid, id是自原创 2021-02-22 16:19:56 · 111 阅读 · 0 评论 -
(基础)Mysql and和or 的优先级
背景MySQL中,AND的执行优先级高于OR写在前面原文链接https://www.cnblogs.com/phpper/p/10773004.htmllink例子优先执行AND语句,再执行OR语句select * from table where 条件1 AND 条件2 OR 条件3等价于select * from table where ( 条件1 AND 条件2 ) OR 条件3select * from table where 条件1 AND 条件2 OR 条件3原创 2021-02-22 15:56:27 · 413 阅读 · 0 评论 -
(基础)Mysql 的 create as 和create like 区别
背景复制表结构或是数据写在前面原文链接https://www.cnblogs.com/phpper/p/10773004.htmllinkMysql 5.6.51 GTID复制例子DROP TABLE IF EXISTS `t1`;CREATE TABLE `t1` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID,自增', `uid` bigint(11) UNSIGNED NOT NULL DEFAULT原创 2021-02-20 18:02:44 · 1973 阅读 · 0 评论 -
项目05(Mysql升级05Mysql5.5.62升级到Mysql5.6.51)
背景《承接上文,项目05(Mysql升级04Mysql5.1.73升级到Mysql5.5.62)》,写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。逻辑升级命令介绍详见上文mysqlcheck --defaults-file=/etc/my.cnf -u root -p --all-databases --check-upgrademysqldump --socket=/tmp/mysql5.5.62.sock -u root -p --add-drop-table --ro原创 2021-02-20 16:23:04 · 186 阅读 · 2 评论 -
(基础)MySQL查看数据库安装路径
背景数据库路径相关信息查询写在前面原文链接https://www.cnblogs.com/phpper/p/10773004.htmllink环境:Mysql5.5.62安装路径basedirshow variables like '%basedir%';或select @@basedir as basePath from dual ;数据路径datadirshow variables Like '%datadir%';或select @@datadir as dataPat原创 2021-02-20 15:06:55 · 227 阅读 · 0 评论 -
项目05(Mysql升级04Mysql5.1.73升级到Mysql5.5.62)
背景《承接上文,项目05(Mysql升级01)》,上文中说要介绍一些主从切换,仅用于本次项目的测试(实际生产中还需切换VIP).文章项目05(Mysql升级01)》讨论的是Mysql5.0.95升级到Mysql5.1.73.本文讨论Mysql5.1.73升级到Mysql5.5.62.写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。Mysql5.1.73升级到Mysql5.5.62环境Mysql5.1.73主(66.190) 从(66.191),使用逻辑升级Logical Upg原创 2021-02-09 14:16:52 · 252 阅读 · 0 评论 -
项目05(Mysql升级00准备工作)
背景Mysql数据库版本升级前的准备工作写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。(此文会不断补充)检查项基于官方文档和一些其他文档进行的整理仅在一般可用性(GA)版本之间支持升级。驱动业务从MySQL 5.5升级到MySQL 5.7的很大一个因素是因为JSON这个特性。0.通过创建备份来保护您的数据。备份应包括mysql系统数据库,该数据库包含MySQL系统表1.sql_mode 需要改2.建议使用物理备份,甚至如果条件允许,直接使用冷备模式3.关闭数据库之原创 2021-02-05 16:50:54 · 103 阅读 · 0 评论 -
项目05(Mysql升级03主从切换)
背景《承接上文,项目05(Mysql升级02)》,上文中说要介绍一些主从切换,仅用于本次项目的测试(实际生产中还需切换VIP)写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。主从切换1.从show slave status\G2.主show master status;3.根据以上信息,确保主从数据一致Master_Log_File: mysql-bin.000001 == Relay_Master_Log_File: mysql-bin.000001Read_Mast原创 2021-02-05 15:29:48 · 87 阅读 · 0 评论 -
项目05(Mysql升级02就地升级(In-Place Upgrade))
背景《承接上文,项目05(Mysql升级01)》,上文中涉及的就地升级(In-Place Upgrade),虽不是推荐方式,但也有其使用场景,我们一起来讨论一下。写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。逻辑升级Logical Upgrademysqldump:数据少,大版本之间就地升级(In-Place Upgrade)数据多,小版本之间思路是先升级从库,切换,然后从,接替业务,主再升级在实际的升级过程中很少会用到上面这两种方法,特别是第二种;通常都是通过原创 2021-02-05 15:17:02 · 419 阅读 · 0 评论 -
项目05(Mysql升级01Mysql5.0.95升级到Mysql5.1.73)
背景需要使用新版本特性或是提高数据库性能,再或是新的代码可以支持新的数据库版本写在前面需要(考虑)检查和测试的层面很多,不限于以下内容。1.数据库升级需要考虑代码是否支持(需要开发同事配合和解决问题) 2.DBA方面要考虑升级方案和新旧版本的兼容性问题(参数和更新特性,推荐参照官方文档逐一检查是否可以升级)因为篇幅问题,前期检查内容,另篇单独介绍。本文只涉及具体的操作(先请读者参考测试)Mysql5.0.95升级到Mysql5.1.73根据官方文档的建议,先升级到最新版本,再升级到下一原创 2021-02-05 13:14:53 · 133 阅读 · 0 评论 -
(压测)sysbench1.0.20压测Mysql
背景sysbench是基于LuaJIT的可编写脚本的多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂的工作负载。(本次我们只讨论对应Mysql的压力测试内容,对于它支持的postgresql不讨论)写在前面本文来自知数堂 https://github.com/zhishutech/mysqldbalink官方链接https://github.com/akopytov/sysbenchlink详细内容请阅读原文文档sysbench安装https:/原创 2021-01-29 13:56:37 · 1793 阅读 · 0 评论