
mysql
文章平均质量分 69
jerry-89
这个作者很懒,什么都没留下…
展开
-
mysql数据库内存占用高原因(数据库内存占用高)
mysql数据库内存占用高原因原创 2023-07-09 08:54:29 · 4684 阅读 · 1 评论 -
InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 解决方案
Waiting for page_cleaner to finish flushing of buffer pool原创 2023-07-09 08:22:49 · 729 阅读 · 0 评论 -
MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版
MYSQL转载 2023-02-15 17:34:47 · 1329 阅读 · 0 评论 -
MySQL数据迁移
mysql迁移原创 2022-12-21 10:22:19 · 1911 阅读 · 0 评论 -
xtrabackup用法和原理详述
xtrabackup是percona团队研发的备份工具,比MySQL官方的ibbackup的功能还要多。支持myisam温全备、innodb热全备和温增备,还可以实现innodb的定时点恢复,而且备份和恢复的速度都较快。在目前MySQL的备份实现上,考虑价格、速度、安全、一致性等角度,xtrabackup是非常合适的工具。MariaDB也可以使用percona xtrabackup进行备份,不过MariaDB基于percona xtrabackup开发了它自己的备份工具:MariaDB Bac原创 2022-05-24 12:56:20 · 2058 阅读 · 2 评论 -
mysql批量数据脚本
# mysql批量数据脚本# 1 建表DROP TABLE IF EXISTS `dept`;create table dept( id int unsigned primary key auto_increment, deptno mediumint unsigned not null default 0, dname varchar(20) not null default "", loc varchar(13) not null default "")engine=i...原创 2021-12-16 15:20:47 · 423 阅读 · 0 评论 -
Mysql联表update数据
1.MySQL UPDATE JOIN语法在MySQL中,可以在 UPDATE语句 中使用JOIN子句执行跨表更新。MySQL UPDATE JOIN的语法如下:UPDATE T1, T2,[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1SET T1.C2 = T2.C2, T2.C3 = exprWHERE condition更详细地看看MySQL UPDATE JOIN语法:首先,在UPDATE子句之后,指定主表(T1)和..原创 2021-10-19 19:21:59 · 13500 阅读 · 0 评论 -
Lock wait timeout exceeded
在做修改语句的时候,数据库抛出Lock wait timeout exceeded; try restarting transaction这样的异常,提示错误的意思很明显,是因为这条语句被锁住了,所以释放这个锁。解决方案:1.通过sql: SELECT * FROM information_schema.INNODB_TRX 来查看当前所运行的所有事务,通过查询表,发现有一条事务记录一直处于RUNNING的状态2.再次通过sql:SELECT * FROM information_...原创 2021-10-19 10:51:52 · 1021 阅读 · 0 评论 -
MySQL之数据类型
一. INT类型1. INT类型的分类2. INT类型的使用3. INT(N)4. AUTO_INCREMENT二. 数字类型1. 数字类型的分类三. 字符串类型1. 字符串类型介绍2. N和字符集3.BLOB和TEXT四. 字符集1. 常见的字符集2. collation五. 集合类型1. 集合类型的排序2. 集合类型的排序六. 日期类型1. TIMESTAMP和DATETIME2. 微秒3. 时间函数4. 字段更新时间面试题六. MySQL JSON...原创 2021-10-13 17:18:09 · 340 阅读 · 0 评论 -
MySQL之体系结构
一、 MySQL系统体系结构1.MySQL系统体系结构1.1 数据库1.2 数据库实例1.3 MySQL体系结构1.4 逻辑存储结构1.5 MySQL物理存储结构二、 MySQL主要文件1.慢查询日志1.1 慢查询日志相关参数:1.2 慢查询日志测试2. 通用日志(generic_log)与审计1.1 通用日志作用1.2 审计插件1.3 mcafee Audit Plugin安装一、 MySQL系统体系结构1.MySQL系统体系结构1.1 数据库数据库(数...原创 2021-10-13 17:03:48 · 584 阅读 · 0 评论 -
MySQL之客户端和参数
一. MySQL 参数介绍和设置1. 参数的分类全局参数:GLOBAL 可修改参数 不可修改参数 会话参数:SESSION 可修改参数 不可修改参数 1: 用户可在线修改非只读参数,只读参数只能预先在配置文件中进行设置,通过重启数据库实例,方可生效。2: 所有的在线修改过的参数(GLOBAL/SESSION),在重启后,都会丢失,不会写如my.cnf,无法将修改进行持久化3: 有些参数,即存在于GLOBAL又存在于SESSION, 比...原创 2021-10-13 16:58:10 · 339 阅读 · 0 评论 -
MySQL之权限连接
MySQL之权限连接一、 MySQL的连接登录1. Linux下MySQL登录方式2. 免密码登录二、权限管理1.USER + IP的概念2. 用户权限管理3. 基本操作4. 撤销权限三、授权实战1.常规授权2.授权表和列的访问方式四、MySQL模拟角色五、SSL连接1. 开启SSL (5.7.18)2. 开启证书认证(5.7.18)一、 MySQL的连接登录1. Linux下MySQL登录方式方式一 Unix Socketmysql -p 该方法默...原创 2021-10-13 16:24:13 · 2267 阅读 · 0 评论 -
MySQL之部署实施
目录第2章:MySQL之部署实施 一、MySQL版本选择 二、MySQL版本下载 三、MySQL单机安装步骤 1. 安装通用步骤 2. MySQL 5.6.X 安装 3. MySQL 5.7.X 安装 4. MySQL 8.0.X 安装: 5. 验证安装 6. MySQL启动 四. 配置文件和脚本 1. my.cnf 配置文件 2. my.cnf 参数配置和说明 3. my.cnf 读取问题 4. MySQL部署脚本 1、MySQL5.7脚本...原创 2021-10-13 16:17:56 · 768 阅读 · 0 评论 -
MySQL之部署实施
MySQL之部署实施一、MySQL版本选择MySQL5.6 以后的版本,推荐使用官方版本。 Percona:在5.6版本以后,MySQL将Percon之前优化集成到官方版本中。 MariaDB:10.3版本和MySQL官方InnoDB差异很大。 MySQL在5.6以后不断重构源码,安装包越来越大,功能和性能在持续改进。Oracle终身支持周期二、MySQL版本下载 推荐下载Linux-Generic版本 Source Code版本主要作用是为了让开发人...原创 2021-09-26 17:34:12 · 245 阅读 · 0 评论 -
简单3步快速生成千万级别mysql测试数据库,模拟电商数据
mysql-tester的工具,可以生成模拟电商的数据库,大数据量,具有关联关系!而且只需要三步就可以生成数据了!先上一张自己使用后的数据库监控图在这里插入图片描述简介 生成测试数据,总共有16个表,生成的数据规模是可配置的,比如指定生成100万用户,并且数据之间有关联关系,因此可以测试sql join语句。 用于数据库压力测试很多工具要么生成的数据是单表,即数据之间没有关联关系,要么数据量较小,对于很多测试看不到效果,本项目的目的就是既生成有关联关系的数据,又可以客制化数...转载 2021-07-01 11:24:16 · 1304 阅读 · 0 评论 -
MySQL快速生成大量测试数据
一1.建表DROP TABLE IF EXISTS `sys_user`;CREATE TABLE `sys_user` ( `user_id` bigint(100) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL COMMENT '用户名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `salt` varchar(100) DEFAULT N...原创 2021-07-01 11:21:44 · 3031 阅读 · 0 评论 -
多表查询总结
原创 2021-06-29 18:56:27 · 252 阅读 · 0 评论 -
mysql8.0.20 二进制安装
关闭selinux 1 2 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 修改系统限制参数 1 2 3 4 5 6 7 8 9 cat >> /etc/security/limits.conf << EOF ..原创 2021-06-23 14:21:20 · 362 阅读 · 0 评论 -
MYSQL生成百万条测试数据
在公司测试中难免使用几百万条数据测试,这就需要向自己的数据库中短时间插入百万数据,在这就有脚本可以现成使用,本案例用的是员工和部门的关系,可以举一反三。1、建表# 新建库 create database bigData; use bigData;#1 建表dept CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno MEDIUMINT UNSIGNED N...原创 2021-06-15 17:39:11 · 394 阅读 · 1 评论 -
MySQL基础
一、表的定义表是一种结构化的文件,可以用来存储特定类型的数据,如:学生信息、课程信息等,都可以放到表中,另外表都有特定的名称,而且不能重复。表中有以下几个概念:列、行、主键。1.列(字段)列,通常叫做字段,每个字段都包含:字段名称、字段数据类型、字段约束、字段长度;2.行(记录)行,通常叫做表中的记录。表中的数据是按行(记录)存储的,表里可以有0条或多条记录;3.主键主键,主键是由列构成的,表中的每一行通常都有一个标识,主键可以由一个字段戒多个字段构成,一个字段构的主键称为单一主键,多原创 2021-05-28 10:36:41 · 5322 阅读 · 1 评论 -
MYSQL锁
原创 2021-01-12 17:04:13 · 126 阅读 · 0 评论 -
mysql全量和增量备份详解
应用场景:1)增量备份在周一到周六凌晨3点,会复制mysql-bin.00000*到指定目录;2)全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执行,并会删除上周留下的mysq-bin.00000*,然后对mysql的备份操作会保留在bak.log文件中。脚本实现:1)全量备份脚本(假设mysql登录密码为123456;注意脚本中的命令路径):[root@test-huanqiu ~]# vim /root/Mysql-FullyBak.sh#!/bin/bash# P原创 2020-10-21 15:15:31 · 675 阅读 · 0 评论 -
mysqldump备份时保持数据一致性分析--master-data=2 --single-transaction
对MySQL数据进行备份,常见的方式如以下三种,可能有很多人对备份时数据一致性并不清楚1、直接拷贝整个数据目录下的所有文件到新的机器。优点是简单、快速,只需要拷贝;缺点也很明显,在整个备份过程中新机器处于完全不可用的状态,且目的无法释放源数据文件中因为碎片导致的空间浪费和无法回收已发生扩展的innodb表空间。2、用xtrabackup进行热备。优点是备份过程中可继续提供服务;缺点和第一种方法差不多,目的分区无法释放源数据文件中因为碎片导致的空间浪费和无法回收已发生扩展的innodb表空间。...原创 2020-10-21 14:56:05 · 3891 阅读 · 0 评论 -
深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data
在mysqldump过程中,之前其实一直不是很理解为什么加了--single-transaction就能保证innodb的数据是完全一致的,而myisam引擎无法保证,必须加--lock-all-tables,前段时间抽空详细地查看了整个mysqldump过程。理解master-data和--dump-slave--master-data=2表示在dump过程中记录主库的binlog和pos点,并在dump文件中注释掉这一行;--master-data=1表示在dump过程中记录主库的binlo原创 2020-10-21 14:50:21 · 460 阅读 · 0 评论 -
ERROR 1273 (HY000): Unknown collation: ‘utf8mb4_0900_ai_ci‘
一、导入失败错误提示:ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'是因为linux下MySQL版本不兼容导致的我们需要做的是打开我们导出的的sql文件• 把文件中的所有的utf8mb4_0900_ai_ci替换为utf8_general_ci• 以及utf8mb4替换为utf8• 如上图所示的位置,上图只是一部分,注意全部替换。配置本地:mysql 8.0.19服务器:mysql 5.7...原创 2020-10-14 16:38:50 · 5155 阅读 · 3 评论 -
mysql-MGR高可用集群
1.MySQL Group Replication(MGR)MySQL Group Replication(MGR:mysql组复制技术)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供。MGR基于分布式paxos协议,实现组复制,在分布式中保证数据一致性和原子性,且具有容错率的一致性算法。内置故障检测和自动选主功能,只要不是集群中的大多数节点都宕机,就可以继续正常工作。提供单主模式与多主模式,多主模式支持多点写入。MySQL Group Replic原创 2020-09-25 15:48:20 · 1592 阅读 · 0 评论 -
滴滴面试题 Mysql8.0&Mysql5.7&Mysql5.6&Mysql5.5特性对比
Mysql5.5 特性,相对于Mysql5.1性能提升 默认InnoDB plugin引擎。具有提交、回滚和crash恢复功能、ACID兼容。 行级锁(一致性的非锁定读 MVCC)。 表与索引存储在表空间、表大小无限制。 支持dynamic(primary key缓存内存 避免主键查询引起的IO )与compressed(支持数据及索引压缩)行格式。 InnoDB plugin文件格式Barracuda、支持表压缩、节约存储、提供内存命中率、truncate原创 2020-09-25 15:42:01 · 705 阅读 · 0 评论 -
Innodb中mysql如何快速删除2T的大表
目录一、表删除过程1. buffer pool清除2. 删除表相关的磁盘文件二、创建硬链接三、删除表四、删除文件释放空间参考: 在一个高负载的生产数据库上删除大表需要一些技巧,倘若直接drop table,将产生大量磁盘I/O,严重的会卡库,这是高可用服务所不能接受的。要优化删除表,需要了解其内部执行过程。一、表删除过程 表删除原理上分为内存和磁盘两部分操作: 清除表相关的buffer pool页面。 删除表相关的磁盘...原创 2020-09-17 17:12:46 · 381 阅读 · 0 评论 -
MySQL主从延时优化
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。为什么主从延时这么大?答:MySQL使用单线程重放RelayLog。应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。多线程并行重放RelayLog有什么问题?答:需要考虑如何分割RelayLog,才能够让多个数据库实例,多个线程并行重放RelayLog,不会出现不一致。为什么会出现不一致?答:...原创 2020-09-16 12:01:29 · 544 阅读 · 0 评论 -
MySQL 四种事务隔离级别
按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用--transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。例如,你可以在my.inf文件的[mysqld]节里类似如下设置该选项:transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-REA原创 2020-09-16 10:49:01 · 242 阅读 · 0 评论 -
解决死锁之路(终结篇) - 再见死锁
在前面的几篇博客中,我们学习了事务,隔离级别,各种锁类型,以及各种 SQL 语句的加锁原理,这一系列的知识学习下来,断断续续,竟然已经过去了大半年的时间。随着对数据库原理的学习越来越深入,越发现一发不可收拾,这里面的水实在是太深了。这是这个系列的最后一篇,也让我们回到这个系列的初衷,如何通过死锁日志来诊断死锁的成因,如何分析和解决我们开发过程中遇到的数据库死锁问题。这是《解决死锁之路》系列博文中的最后一篇,你还可以阅读其他几篇:学习事务与隔离级别 了解常见的锁类型 掌握常见 SQL 语句的加锁分转载 2020-08-24 11:09:13 · 405 阅读 · 0 评论 -
MySQL找出未提交事务的信息
目录一、processlist中的未提交事务二、information_schema.innodb_trx中的未提交事务三、performance_schema.events_statements_current中的未提交事务参考: 我们经常会碰到这样的情况,某个事务执行完了未提交,后续再来一个DDL和DML操作,导致后面的session要么处于waiting for metadata lock,要么是锁等待超时。这时我们往往只能找到这个未提交的事务的事务id和...原创 2020-08-24 11:01:04 · 1243 阅读 · 0 评论 -
Mysql InnoDB锁
Mysql InnoDB锁 Mysql常用存储引擎的锁机制MyISAM和MEMORY采用表级锁(table-levellocking)BDB采用页面锁(page-levelocking)或表级锁,默认为页面锁InnoDB支持行级锁(row-levellocking)和表级锁,默认为行级锁各种锁特点表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生冲突的概率最高,并发度最低行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高页面锁:开销...原创 2020-08-20 18:10:59 · 167 阅读 · 0 评论 -
获取MySQL历史session
MySQL的show processlist命令可以显示当时的会话情况,但很多时候都需要查看出问题当时的状态,可惜MySQL没有提供类似history session这样的功能。于是为了方便问题排查,自己写了一个非常简单的抓取MySQL现场session的脚本,生产数据库已经用了很长时间,感觉对trouble shooting还是挺有用的。脚本文件get_processlist.sh内容如下: #!/bin/bash source /home/mysql/.bashrc dt=`d...原创 2020-08-20 18:05:44 · 1035 阅读 · 0 评论 -
比较两个数据库有何差异生成更新的SQL语句脚本
MySQL Utilities提供了一系列MySQL服务器和数据库的管理工具。完全支持MySQL5.1及以上版本,也兼容MySQL5.0版本,不过有些特性不支持。不支持MySQL4.0版本。下面这些工具工作在数据库级别,可以用来管理一个或多个服务器的数据库。1 mysqldbcompare比较两个服务器或同个服务器上的数据库 比较定义文件和数据 产生差异报告 生成差异性的...原创 2020-08-18 15:58:34 · 2656 阅读 · 0 评论 -
grant 权限 on 数据库对象 to 用户
grant 权限 on 数据库对象 to 用户 grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user@’%’grant insert on testdb.* to common_user@’%’grant update on testdb.* to common_user@’%’grant delete on testdb.* t原创 2020-08-17 17:52:40 · 5563 阅读 · 0 评论 -
MySQL性能分析、及调优工具使用详解
MySQL性能分析、及调优工具使用详解 本文汇总了MySQL DBA日常工作中用到的些工具,方便初学者,也便于自己查阅。先介绍下基础设施(CPU、IO、网络等)检查的工具:vmstat、sar(sysstat工具包)、mpstat、oprofile、nicstat、dstat、iotop、tsar、iostat 掌握几个即可,功能大同小异(个人常用的是 dstat、sar)。CPU: mpstat -P ALL 1 每隔1s显示一次 上图可以看到CPU...转载 2020-08-17 14:45:20 · 947 阅读 · 0 评论 -
mysqlreport使用详解
进行MySQL的配置优化,首先必须找出MySQL的性能瓶颈所在;而SHOW STATUS输出的报告正是用来计算性能瓶颈的参考数据。mysqlreport不像SHOW STATUS那样简单的罗列数据,而是对这些参考数据加以融合计算,整理成一个个优化参考点,然后就可以根据这个优化参考点的值以及该点的衡量标准,进行对应调整。一、安装:下载mysqlreport工具,直接解压即可,下载地址:http://hackmysql.com/scripts/mysqlreport-3.5.tgz需要注意的是,m.转载 2020-08-17 14:40:18 · 2161 阅读 · 0 评论 -
MYSQL中快速高效删除大数据表中的重复数据
MYSQL体系结构:SQL解析:内存:线程:物理文件:DML:undo/redo:内存与磁盘交互(来源网络):转载 2020-08-13 11:30:56 · 862 阅读 · 0 评论 -
InnoDB log file 设置多大合适?
简介:数据库的东西,往往一个参数就牵涉N多知识点。所以简单的说一下。大家都知道innodb是支持事务的存储引擎。事务的四个特性ACID即原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。其中原子性,一致性,持久性通过redo log 和 undo来实现。redo log称为重做日志,用来保证事务的原子性和持久性。undo log用来保证事务的一致性。当事务提交时,必须先将该事务的所有日志写入到重做日志文件(redo log)进.原创 2020-08-11 16:24:45 · 2064 阅读 · 0 评论