
MySQL实战篇
文章平均质量分 77
MySQL运维管理
优惠券已抵扣
余额抵扣
还需支付
¥15.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
GottdesKrieges
Oracle、OceanBase、TiDB、达梦数据库认证专家。 GBase数据库认证工程师。K8S云原生认证工程师。ITIL服务管理和PMP项目管理认证。
展开
-
MySQL中的CREATE TABLE LIKE和CREATE TABLE SELECT
【代码】MySQL中的CREATE TABLE LIKE和CREATE TABLE SELECT。原创 2025-03-30 20:02:55 · 847 阅读 · 0 评论 -
mysql数据库8.0小版本原地升级
数据库备份请使用mysqldump、MySQL Shell或者xtrabackup的对应版本。出于安全因素考虑,my.cnf里的认证插件如果用的是mysql_native_password,建议替换为caching_sha2_password。可以看到,升级过程中主要是升级了系统表、help表、performance_schema和sys schema等数据库内部对象。MySQL社区版安装包:https://downloads.mysql.com/archives/community/原创 2024-09-07 09:04:22 · 2162 阅读 · 0 评论 -
mysqldump导数报错error 2008处理办法
mysqldump导出dump文件时收到MySQL客户端从服务器获取数据时内存耗尽的报错。单次导出的表行数太多,超过了mysql客户端的内存限制(可能是。参数,但是生产环境不建议,因为会锁表。如果需要忽略包含特定字符的表,使用多个。mysqldump命令加上。参数,默认256M)。原创 2024-02-03 10:58:12 · 1098 阅读 · 0 评论 -
mysqldump导出函数、存储过程和视图
查看函数和存储过程:mysqldump导出函数和存储过程(不导出表数据):或者生成删除函数和存储过程的语句:修改并确认dump文件后,导入存储过程和函数:导出视图定义检查数据库下面所有视图:获取并拼接所有视图名称:mysqldump单独导出视图/表定义:生产删除视图的语句:修改并确认dump文件后导入视图:原创 2024-01-01 21:02:20 · 2733 阅读 · 0 评论 -
MySQL 8.0 ReplicaSet备库切换为可读写单库
使用此种方法,集群中还会残留备库的拓扑信息,如果使用。删除备库实例可能会导致备库变成只读。原创 2024-01-01 20:58:09 · 600 阅读 · 0 评论 -
MySQL Shell拷贝一个库到一个新库
⛵️场景:从同一台MySQL服务器的testdb中导出所有表。新建一个库testdb23,将导出的备份导入新建的testdb23库。原创 2023-12-02 11:37:28 · 630 阅读 · 0 评论 -
MySQL运维之系统库sys
🐬数据库版本:MySQL 8.0.30。原创 2023-07-05 22:24:42 · 665 阅读 · 0 评论 -
MySQL 8性能监控常用SQL汇总
🐬数据库版本:MySQL 8.0.30本文中的系统表和视图,如未说明,默认在数据库中。原创 2023-07-02 00:30:00 · 1730 阅读 · 0 评论 -
MySQL系统库之information_schema和performance_schema
可以直接更新setup_instruments表来控制某个性能指标的事件收集:通过ENABLED字段来控制是否收集性能诊断信息,TIMED字段来控制是否收集该指标的运行时间信息。对于InnoDB表而言,实际上index_length是分配给非聚簇索引的空间大小,data_length是分配给聚簇索引的空间大小。通过setup_objects来控制数据库对象的性能诊断信息的收集。可以直接更新setup_objects表来控制某个数据库对象的性能指标收集。:不同的消费者之间存在依赖关系。原创 2023-07-01 23:30:00 · 429 阅读 · 0 评论 -
【江湖救急】通过mysqlbinlog恢复误删除数据
🐬数据库版本:MySQL 8.0.30。原创 2023-07-01 17:02:26 · 2505 阅读 · 0 评论 -
关于MySQL Binlog日志的二三事
🐬数据库版本:MySQL 8.0.30。原创 2023-07-01 14:03:18 · 743 阅读 · 0 评论 -
基于tpcc-mysql的MySQL数据库TPC-C性能测试
🐬下载地址:https://github.com/Percona-Lab/tpcc-mysql。TPC-C测试中重点关注新订单(New Order)类型事务。,这与我们之前使用过的BenchMarkSQL工具一致。测试部分每10秒输出一份统计结果,间隔时间由。编译成功后生成了两个文件。加载测试数据使用的工具是。如果要并行加载,需要用到。,即每个仓库初始大小约为。原创 2023-05-14 09:40:27 · 1224 阅读 · 1 评论 -
MySQL语句执行耗时分析
MySQL Profile目前已被列为Deprecated,官方推荐使用Performance Schema替代。不过目前Performance Schema好像还不是很完善,只能查看SQL执行各阶段的耗时,而看不到CPU和IO等资源消耗(截止8.0.32)。原创 2023-04-16 20:18:37 · 1440 阅读 · 0 评论 -
MySQL查看与修改数据库字符集
根据MySQL官方文档解释,目前MySQL中的utf8字符集,实际上是utf8mb3字符集,即用3个字节的Unicode编码;而utf8mb4才是真正意义上的4个字节的UTF8编码。不过在较新的MySQL版本(8.0.32)中,已经只能查询到utf8mb3和utf8mb4两个UTF8编码,而看不到名为utf8的字符集。原创 2023-04-14 02:15:00 · 2386 阅读 · 0 评论 -
MySQL 8.0限制用户并发连接数的两个参数
针对所有用户总体而言,MySQL Server允许的最大并发客户端连接数,默认值为151,可以根据服务器配置适当调大到1000。针对单个MySQL用户而言,所允许的最大并发连接数。既有全局级别的参数值,也有会话级别的参数值。的值不为0,那么该值即为会话级别。修改全局级别的用户最大并发连接数。如果为用户设置的最大并发连接数。如果为用户设置的最大并发连接数。的生效值即为全局级别的配置值。的实际生效值等于它的配置值与。修改用户的最大并发连接数。配置值两者中的较小值。的值为0,那么会话级别。原创 2023-04-12 02:00:00 · 4715 阅读 · 0 评论 -
MySQL Shell备份恢复可能会遇到的报错
使用MySQL Shell进行备份和恢复的方法参见。原创 2023-04-11 20:56:25 · 676 阅读 · 0 评论 -
MySQL Shell 8.0的Dump Utility备份与恢复
MySQL Shell 8.0的Dump Utility特性支持实例、Schema、数据表三个级别的MySQL数据导出功能。MySQL Shell的实例备份特性可用于导出多个用户和Schema的数据。MySQL中的Schema可以近似理解为Database的概念。MySQL Shell的loadDump特性用于导入使用Dump Utility导出的备份。MySQL Shell的Schema备份特性可用于导出指定的多个库的多张表数据。MySQL Shell的表级别备份特性可用于导出指定的单个库的多张表数据。原创 2023-04-09 06:49:13 · 1451 阅读 · 0 评论 -
MySQL高可用架构之InnoDB Cluster部署
MySQL InnoDB Cluster是一套完整部署和管理MySQL的高可用性解决方案,整合了MySQL的多项技术,以弥补组复制无法提供具有自动化故障转移功能的中间件,无法自动配置等不足。InnoDB集群使用了Group Replication,因此必须满足使用组复制的要求。如果提示副本实例的GTID与集群不一致,选择通过。台MySQL服务器实例组成,并且提供高可用性和扩展功能。如果相同,修改后重启MySQL服务。需要先安装三台单机MySQL,具体教程参见。初始化完第一个实例后,就可以创建集群了。原创 2023-03-05 15:08:15 · 2090 阅读 · 1 评论 -
MySQL高可用架构之InnoDB ReplicaSet部署
可以通过MySQL Shell快速搭建及管理主从复制,避免了搭建主从复制时大量的手动操作。InnoDB ReplicaSet至少由两台MySQL服务器实例组成,提供MySQL主从复制功能。MySQL Router可以为ReplicaSet提供应用程序的透明路由和读写分离,建议与应用安装在同一台服务器上。可以看到,MySQL Router生成了四个连接路由,两个读写和两个只读。重新通过MySQL Router建立连接后,可以看到主实例已经更新为。发生主从切换后,已有的连接会断开,需要重新建立连接。原创 2023-03-04 15:34:37 · 1279 阅读 · 0 评论 -
MySQL Truncate语句导致表锁问题处理
🍪数据库版本: MySQL 8.0.32。原创 2023-02-07 00:30:00 · 3758 阅读 · 2 评论 -
MySQL 8.0 Server单机安装教程
🍪数据库版本:MySQL 8.0.32☕️操作系统版本:CentOS 7.7。原创 2023-02-05 15:30:29 · 885 阅读 · 0 评论 -
MySQL执行计划中访问表数据的方法
创建测试用的表:其中,id列为主键,name列上存在二级索引,ISNcode列上存在唯一二级索引,singer列上存在二级索引,info_n1、info_n2和info_n3三列上存在二级联合索引。下面介绍MySQL在执行SQL时访问表数据的几种常见方法(对应explain执行计划中的Type)。当目标表中只有一行记录,并且该表使用的存储引擎的统计数据是精确的(比如MyISAM、MEMORY,不包括InnoDB),MySQL访问数据的方法就是system。注:当目标表中只有一行记录,并且该表使用的存储引原创 2022-12-07 16:42:14 · 298 阅读 · 0 评论 -
MySQL备份与恢复工具之XTRABACKUP
Percona XtraBackup是一款开源的MySQL热备份工具。XtraBackup支持对基于InnoDB、XtraDB和MyISAM存储引擎的表的备份,且支持Oracle MySQL、Percona Server和MariaDB多个分支。目前官网提供2.4和8.0两个版本的下载,前者支持MySQL 5.1、5.5、5.6、5.7的备份,后者仅支持MySQL 8.0的备份。原创 2022-09-12 17:53:11 · 1449 阅读 · 0 评论 -
MySQL备份与恢复工具之MYSQLDUMP
mysqldump是MySQL服务端自带的逻辑备份工具。原创 2022-09-11 20:59:17 · 709 阅读 · 0 评论 -
MySQL表数据导入导出
和是MySQL中常用的表数据导出导入的方法。由于不能导出表结构信息,因此一般不用于备份与恢复。原创 2022-09-10 16:17:21 · 2591 阅读 · 0 评论 -
MySQL基于GTID建立半同步复制
未开启GTID模式前生成的binlog,在开启GTID模式后的半同步架构中无法使用。这是由于apptest库是在创建半同步前于主库上创建的,当时生成的binlog是没有开启GTID模式的,因此也不会被同步到从库。而在创建半同步复制后,最新的INSERT语句会被同步到从库回放,但是却找不到对应的apptest库。如果主备库已经在使用非GTID的方式进行binlog同步了,需要将所有数据库设置为只读(没有提交的事务会回滚,会影响业务),等待备库赶上主库。因此,MySQL开启GTID模式创建半同步前,...原创 2022-08-28 05:00:00 · 424 阅读 · 0 评论 -
MySQL解析binlog日志文件
上面Binlog的格式为。可以看到,解析出的DML语句被加密了。原创 2022-08-27 15:27:01 · 1548 阅读 · 1 评论 -
MySQL慢查询与执行计划分析
所以上面的意思是:执行了2次,最大时间是2.79s,总共花费时间5s,lock时间0s,单次返回的结果数是500条记录,2次总共返回1000条记录。可以看到,SQL语句中的数字被替换为了字母N,是因为mysqldumpslow将它们视为同一种类型的语句,并进行了合并显示。:如果每次只匹配少数行,那就是比较好的一种,使用=或《=》,可以使用左覆盖索引或非主键或非唯一键;: 查询的表,可能是数据库中的表或视图,也可能是From中的子查询;:union中的第二个或后面的select语句,取决于后面的查询;...原创 2022-08-27 17:00:00 · 568 阅读 · 0 评论 -
【图解】MySQL主从半同步与两阶段提交
【图解】MySQL主从半同步与两阶段提交原创 2022-07-14 12:29:08 · 540 阅读 · 0 评论 -
MySQL字符集与排序规则
字符集(character set)可以理解为符号(symbols)与编码(encoding)的集合,而排序规则(collation)则是指用来比较字符集中所有字符的规则。MySQL支持多种字符集,用于存储数据、比较字符串、以及客户端程序与MySQL服务器之间的通信。MySQL支持在以下五个层级设定字符集...翻译 2022-06-04 20:58:51 · 4618 阅读 · 0 评论 -
【不积跬步无以至千里】MySQL报大量unauthenticated user连接错误
【不积跬步无以至千里】MySQL报大量unauthenticated user连接错误问题背景问题分析问题处理问题背景应用报MySQL数据库无法连接,经排查发现是连接数满了。通过max_connections参数将连接数上限调大到1000后,数据库开始大量报unauthenticated user错误。: 343942 : unauthenticated user : 192.168.0.4:49607 : : Connect : : login :: 343943 : unauthenticate原创 2022-02-24 20:27:25 · 1927 阅读 · 0 评论 -
【MySQL基础篇】数据导出导入权限与local_infile参数
【MySQL基础篇】数据导出导入权限与local_infile参数问题背景数据导出测试创建测试库(在主库进行)测试数据导出(在从库进行)测试数据导入(在主库进行)问题背景MySQL高可用集群架构中,应用需要使用select ... into outfile和load data [local] infile来进行数据导入导出操作。其中,数据导出(只涉及读操作)发生在只读Slave节点,通过localhost连入数据库;数据导入(涉及读写操作)发生在Master节点,通过集群vip连入数据库。DB原创 2022-02-17 21:25:06 · 10791 阅读 · 0 评论 -
【MySQL基础篇】启动选项、系统变量、状态变量
【MySQL基础篇】启动选项、系统变量、状态变量启动选项系统变量状态变量启动选项mysqld 即 MySQL Server,是在MySQL数据库服务安装初始化时执行的程序。执行mysqld初始化数据库时,可以指定服务器启动选项(server options)。系统变量MySQL Server的系统变量(system variables)会影响MySQL服务的运行。系统变量可以在服务启动时设定。许多系统变量也可以在服务运行时修改,动态地影响服务配置。状态变量MySQL Server的状态变量(st原创 2022-02-04 00:18:16 · 1918 阅读 · 0 评论 -
【MySQL基础篇】启动选项与配置文件
【MySQL基础篇】启动选项和配置文件mysqld启动选项配置文件:my.cnfmysqld启动选项配置文件:my.cnf原创 2022-02-02 11:54:43 · 5898 阅读 · 0 评论 -
MySQL Server单机部署手册
MySQL Server单机部署手册安装前环境检查创建用户目录并挂载LVM解压安装介质配置文件my.cnf配置服务mysqld.service初始化MySQL修改root用户密码常见错误处理重启数据库服务部署操作系统环境为CentOS 7,数据库版本为MySQL 5.7。安装前环境检查停止已有的mysql服务并清理环境(如果是全新环境,可以跳过)# stop mysql servicesystemctl status mysqld.servicesystemctl stop mysqld.ser原创 2022-01-16 00:24:24 · 413 阅读 · 1 评论 -
安装MySQL主从并配置半同步
安装MySQL主从并配置半同步安装MySQL安装mysql 5.7修改密码配置半同步配置主节点配置从节点半同步测试安装MySQL安装mysql 5.7在CentOS7上安装mysql$ wget -ic http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm$ yum -y install mysql57-community-release-el7-10.noarch.rpm$ yum -y install mys原创 2021-03-01 14:02:41 · 456 阅读 · 0 评论 -
Ubuntu安装MySQL
下载mysql community版本:https://dev.mysql.com/downloads/mysql/下载文件位于/home/user/下载/安装mysql:MyComputer:$ sudo apt-get install libaio1MyComputer:$ cd /usr/local/MyComputer:/usr/local$ lsbin cu...原创 2019-01-14 21:58:54 · 295 阅读 · 0 评论 -
Matlab导入整个文件夹目录下txt文档到数据库
使用Matlab将指定文件夹下所有txt文档数据导入MySQL数据库。备忘:写这个程序的目的是为了将同一目录下的一百多个txt文档导入数据库。文本的命名都是类似的,名称的最后四位数字用于区分不同文档。文档内的数据格式:每列用空格分隔,每行用换行符分隔,都是纯数字。function importFolder2db(filedir)% namelist = dir('D:/myF原创 2017-07-18 21:34:49 · 3029 阅读 · 0 评论