
DBA-MySQL
文章平均质量分 53
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统
小沈曰
人生的高度,不在于你看清了多少事,而在于你看轻了多少事。
展开
-
【MySQL 】全部函数参考手册
【MySQL 】全部函数参考手册原创 2024-01-17 16:48:38 · 1498 阅读 · 0 评论 -
【MySql】常用函数参考
【MySql】常用函数参考原创 2024-01-17 15:53:08 · 1039 阅读 · 0 评论 -
【MySQL】基础篇-变量、流程控制与游标
【MySQL】基础篇-变量、流程控制与游标原创 2023-10-24 16:05:30 · 229 阅读 · 0 评论 -
【MySQL】基础篇-存储过程与存储函数
【MySQL】基础篇-存储过程与存储函数原创 2023-10-24 15:30:13 · 167 阅读 · 0 评论 -
【MySQL】基础篇-视图(View)
【MySQL】基础篇-视图(View)原创 2023-10-24 15:11:19 · 184 阅读 · 0 评论 -
【MySQL】基础篇-约束
【MySQL】基础篇-约束原创 2023-10-24 08:52:03 · 77 阅读 · 0 评论 -
【MySQL】基础篇-数据类型精讲
【MySQL】基础篇-数据类型精讲原创 2023-10-19 11:44:53 · 83 阅读 · 0 评论 -
【MySQL】基础篇-数据处理之增删改
【MySQL】基础篇-数据处理之增删改原创 2023-10-19 11:23:09 · 101 阅读 · 0 评论 -
【MySQL】基础篇-创建和管理表
【MySQL】基础篇-创建和管理表原创 2023-10-19 09:37:52 · 144 阅读 · 0 评论 -
【MySQL】基础篇-子查询
【MySQL】基础篇-子查询原创 2023-10-19 09:06:59 · 90 阅读 · 0 评论 -
【MySQL】基础篇-单行函数、聚合函数
【MySQL】基础篇-单行函数、聚合函数原创 2023-10-18 08:29:08 · 99 阅读 · 0 评论 -
【MySQL】基础篇-SELECT语言、运算符、排序与分页、多表查询
【MySQL】基础篇-SELECT语言、运算符、排序与分页、多表查询原创 2023-10-15 21:01:21 · 175 阅读 · 0 评论 -
【MySQL】mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file
【MySQL】mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file原创 2022-10-19 22:45:35 · 612 阅读 · 0 评论 -
【Windows】mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
【Windows】mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。原创 2022-10-09 09:00:00 · 733 阅读 · 0 评论 -
【MySQL】解决Mac访问Windows上MySQL服务器问题
步骤1: 首先查看是否能 ping 通Windows地址如果ping不通,检查windows是否可以外网访问,是否关闭防火墙。问题描述:在windows可以ping通mac,反之不可以。说明windows开启了访问保护,可以关闭防火墙或添加可信任的访问来源。步骤2:ping通之后,查看mysql是否允许远程访问在Windows上进入MySQL服务,操作下面配置。update user set host = ‘%’ where user = 用户名 ;参考操作:mysql> use m原创 2022-04-05 20:17:28 · 2224 阅读 · 0 评论 -
MySQL - 47 8.0新特性 NoSQL文档存储
什么是NoSQLNoSQL是Not Only SQL的简称,意思是“不仅仅是SQL”。目前,我们常用的都是关系型数据库,如Oracle、DB2、MySQL、SQL Server等。实践证明,关系模型是非常适合于客户服务器编程,它是结构化数据存储在网络和商务应用的主导技术。NoSQL,指的是非关系型的数据库,它是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数 据)。这些类型的数据存储不需要固定的模式,无原创 2020-06-06 17:07:51 · 597 阅读 · 0 评论 -
MySQL - 46 8.0新特性原子DDL
什么是原子DDLMySQL 8.0 开始支持原子性的数据定义语言(DDL),也称为原子 DDL。一个原子 DDL 语句将相 关的数据字典更新、存储引擎操作以及写入二进制日志组合成单一的原子事务。当事务正在处理时出现服务器故障,该事务可能被提交,相应的变更会保存到数据字典更新、存储引擎更改以及二进 制日志中;也可能被整体回滚。目前,只有 InnoDB 存储引擎支持原子 DDL。支持原子DDL数据库、表空间、表、索引的 CREATE、ALTER 以及 DROP 语句,以及 TRUNCATE TABLE原创 2020-06-06 16:49:51 · 196 阅读 · 0 评论 -
MySQL - 458.0新特性默认字符集utf8mb4
进一步认识utf8mb4MySQL在5.5.3之后增加了utf8mb4编码,mb4是most bytes 4的缩写,专门用于兼容四字节字符, 如Emoji表情,部分中文“煕 ”。MySQL中的utf8是utf8mb3的别名,utf8mb4兼容utf8,且比utf8能表示更多的字符。MySQL 8.0将utf8mb4作为默认字符集。实战案例drop table if exists word_test;create table word_test( word varchar(100));ins原创 2020-06-06 16:39:47 · 564 阅读 · 0 评论 -
MySQL - 44Navicat无法连接MySQL 8.0的问题解决
Navicat如何连接MySQL8.0老版本的Navicat连接能正常连接MySQL 5.x,但是连接MySQL 8.0却报错,错误提示如图所示。Client does not support authentication protocol requested by server;consider upgrading MySQL client客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端MySQL 5.x的身份认证方式为 mysql_native_password,也就是Nav原创 2020-06-06 16:31:06 · 228 阅读 · 0 评论 -
MySQL - 43 8.0新特性串讲
MySQL 8.0简介MySQL 8.0.0于2016年9月12日发布,这是一个开发里程碑版本。MySQL 8.0的前一个版本是 MySQL 5.7,官方表示MySQL 8.0的速度要比MySQL 5.7快2倍, MySQL 8.0为读/写工作负载、 I/O密集型工作负载和高竞争“热点”工作负载提供了更好的性能。更多关于MySQL 8.0的信息请参考https://dev.mysql.com/doc/relnotes/mysql/8.0/en /MySQL 8.0的新特性新特性/改进描述原创 2020-06-06 16:26:29 · 157 阅读 · 0 评论 -
MySQL - 42图形化管理工具
初学者不建议过早接触MySQL图形化管理工具,让你如虎添翼!常用的MySQL图形化管理工具MySQL的管理工具非常多,除了自带的命令行管理工具之外,还有许多其他的图形化管理工具。名称描述MySQL WorkbenchMySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它是MySQL官方提供的图形化管理工具,功能很强大,值得推荐。 下载地址:https://dev.mysql.com/downloads/workben原创 2020-06-06 16:09:06 · 257 阅读 · 0 评论 -
MySQL - 41审计功能:谁什么时间做了什么
MySQL审计功能审计是数据库安全中很重要的一个环节,它能够实时记录数据库的操作记录,帮助数据库管理员对数据库异常行为进行分析审核。审计会详细记录谁、在什么时间、执行了什么操作。MySQL社区版没有自带的审计功能或插件,MySQL商业版中有审计功能。<AUDIT_RECORD "NAME"="Query""RECORD"="1292_2020-03-03T00:04:42" "TIMESTAMP"="2020-03-03T12:45:07 UTC" "COMMAND_CLASS"="sel原创 2020-06-06 15:35:57 · 272 阅读 · 0 评论 -
MySQL - 40如何恢复误删的数据
什么是binlog日志MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。万一遇到数据丢失的紧急情况下,可以使用binlog日志进行数据恢复(定时全备份+binlog日志恢复增量数据部分)。使用binlog恢复误删的数据#查看所有二进制日志列表show master logs;#查看正在使用的二进制日志show master sta原创 2020-06-06 15:30:09 · 132 阅读 · 0 评论 -
MySQL - 39SQL注入是什么
什么是SQL注入SQL注入(SQL Injection)是指应用程序对用户输入数据的合法性没有判断、没有过滤,攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变SQL的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库执行非授权的任意查询。广泛性:任何一个基于SQL语言的数据库都可能受到SQL注入攻击。很多开发人员都为了省事不对表单参数进行校验。隐蔽性:SQL注入语句一般都嵌入在普通的HTTP请求中,很难与正常语句区分开,SQL注入也有很多变种。危害大:攻击者原创 2020-06-06 14:49:15 · 223 阅读 · 0 评论 -
MySQL - 38字符集之GB2312装不下“屌丝”
什么是字符集字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同, 常见的字符集有ASCII、GB2312、GBK、 GB18030、Unicode等。计算机要准确的处理各种字符 集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。字符集描述ASCII最简单的西文编码方案,主要用于显示现代英语和其他西欧语言。 使用1个字节表示,可表原创 2020-06-06 14:15:06 · 282 阅读 · 0 评论 -
MySQL - 37导入数据
LOAD DATA在MySQL中,可以使用LOAD DATA语句将文本文件数据导入到对应的数据库表中,可以将LOAD DATA语句看成是SELECT…INTO OUTFILE的反操作。数据文件位置/字段间分隔符/值用双引号引起/行间分隔符 #示例LOAD DATA INFILE '/usr/local/employee.txt' INTO TABLE employee character set utf8 FIELDS TERMINATED BY ','ENCLOSED BY '"'LINES原创 2020-06-06 12:28:28 · 220 阅读 · 0 评论 -
MySQL - 36定时备份数据库
定时备份数据库的解决方案定时调度器Windows的定时计划Linux的Crontab编程语言的Timer…数据库备份脚本DOS批处理脚本Linux Shell脚本… …SELECT…INTO OUTFILEmysqldumpWindows上实现定时备份MySQLschtasks.exe用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任 务、按需要启动和停止任务、显示和更改计划任务。#备份数据库的脚本mysql_mydb_back原创 2020-06-06 11:54:21 · 108 阅读 · 0 评论 -
MySQL - 35导出数据
select…into outfile在MySQL中,可以使用SELECT…INTO OUTFILE语句将查询结果数据导出到文本文件。#select...into outfile示例SELECT * FROM employee INTO OUTFILE '/usr/local/employee.txt' // 文件存储路径FIELDS TERMINATED BY ',' // 行间分隔符ENCLOSED BY '"' // 值用双引号引起LINES TERMINATED BY '\r\n'原创 2020-06-06 10:52:32 · 400 阅读 · 0 评论 -
MySQL - 34Docker上出现secure-file-priv为null
使用MySQL8.0,MySQL 报错Failed to access directory for --secure-file-priv方法1重建容器docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql --secure-file-priv='/usr/local'进入容器docker exec -it mysql /bin/bash进入mysqlroot@9abe1dd59947:/#原创 2020-06-06 10:33:17 · 1218 阅读 · 1 评论 -
MySQL -33复制表的几种方式
复制表的几种方式只复制表结构:只复制表结构,包括主键、索引,但不会复制表数据create table tableName like someTable; 只关注表数据: 复制表的大体结构及全部数据,不会复制主键、索引等create table tableName select * from someTable; 完整复制(表结构+数据):分两步完成,先复制表结构,再插入数据。create table tableName like someTable; insert into tableNa原创 2020-06-06 09:36:14 · 330 阅读 · 0 评论 -
MySQL - 32查询缓存
什么是查询缓存很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划分成阶段。MySQL在某种场景下也可以实现,但是MySQL还有另一种不同的缓存类型:缓存完成 的SELECT查询结果,也就是查询缓存。MySQL将缓存存放在一个引用表中,类似于HashMap的数据结构,Key查询SQL语句,Value则是查询结果。当发起查询时,会使用SQL语句去缓存中查询,如果命中则立即返回缓存的结果集。可以使用 SQL_NO_CACHE 在 SELECT 中禁止缓存查询结果,例原创 2020-06-06 09:16:56 · 198 阅读 · 0 评论 -
MySQL - 31预处理(绑定变量)
什么是预处理从MySQL 4.1开始,就支持预处理语句(Prepared statement),这大大提高了客户端和服务器端数据传输的效率。当创建一个预定义SQL时,客户端向服务器发送一个SQL语句的原型;服务器端接收到这个SQL语句后,解析并存储这个SQL语句的部分执行计划,返回给客户端一个SQL语句处理句柄,以后每次执行这条SQL,客户端都指定使用这个句柄。即时SQL(一次编译、一次运行)语法和词义的解析;优化SQL语句,制定执行计划;执行SQL语句并返回结果;… …语法和词义的解析原创 2020-06-06 09:11:26 · 491 阅读 · 0 评论 -
MySQL- 30触发器实战:给新用户发邮件
什么是触发器触发器(trigger)用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行insert、delete、update操作时 就会触发执行它。#创建触发器语法CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt参数说明:trigger_name:触发器名称trigger_t原创 2020-06-06 08:48:58 · 656 阅读 · 0 评论 -
MySQL - 29存储过程实战:给指定用户发邮件通知
测试数据及需求描述根据传入的用户id和内容发送邮件drop table if exists user_info;drop table if exists email_info;create table user_info( id int not null auto_increment primary key, name varchar(30), email varchar(50));insert into user_info(id, name, email) values(1, 'z原创 2020-06-06 08:28:33 · 669 阅读 · 1 评论 -
MySQL - 28存储过程的基本使用
什么是存储过程存储过程(Stored Procedure)是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中, 用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。存储过程的优点:存储过程是对SQL语句的封装,增强可复用性存储过程可以隐藏复杂的业务逻辑、商业逻辑存储过程支持接收参数,并返回运算结果存储过程的缺点:存储过程的可移植性较差,如果更换数据库,要重写存储过程存储过程难以调试和扩展无法使用Explain对存储过程进行分析《阿里巴原创 2020-06-05 17:56:49 · 228 阅读 · 0 评论 -
MySQL - 27视图
什么是视图视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图 的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成,视图中的数据都存储在基表中。可读性:简化了复杂的查询,使复杂的查询更易于理解和使用安全性:视图可以隐藏一些敏感的信息可以把权限限定到行列级别重用性:视图是对复杂查询语句的封装对数据库重构,不会影响程序的运行视图的基本操作视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图 的操作与对表的原创 2020-06-05 17:23:25 · 117 阅读 · 0 评论 -
MySQL - 26分区表
什么是分区表分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数 据库的性能,被分区存储的数据在物理上是多个文件,但在逻辑上仍然是一个表,对表的任何操作 都跟没分区之前一样。在执行增、删、改、查等操作时,数据库会自动找到对应的分区,然后执行 操作。MySQL从5.1.3开始支持分区(Partition)。在MySQL 8.0中,只有InnoDB和NDB两个存储引擎支持分区。分区表的好处存储更多:与单个磁盘或文件系统分区相比,可以存储更多的数据。提高查询吞吐原创 2020-06-05 17:03:19 · 139 阅读 · 1 评论 -
MySQL - 25事务控制
什么是事务控制事务(Transaction)是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么 全部失败。事务确保对多个数据的修改作为一个单元来处理。在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事务。事务用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行。事务用于管理INSERT、UPDATE和DELETE语句。例如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:从张三的账户减去100元;给李四原创 2020-06-05 15:35:43 · 173 阅读 · 0 评论 -
MySQL - 24覆盖索引
什么是覆盖索引覆盖索引又称之为索引覆盖,即select的数据列只从索引中就能得到,不必读取数据行,也就是只需扫描索引就可以得到查询结果。关于覆盖索引的几点说明:使用覆盖索引,只需要从索引中就能检索到需要的数据,而不要再扫描数据表;索引的体量往往要比数据表小很多,因此只读取索引速度会非常快,也会极大减少数据访问量;MySQL的查询优化器会在执行查询前判断,是否有一个索引可以覆盖所有的查询列;并非所有类型的索引都可以作为覆盖索引,覆盖索引必须要存储索引列的值。像哈希索引、空间索引、全文索引等并不会原创 2020-06-05 14:44:29 · 111 阅读 · 0 评论 -
MySQL - 23复合索引前导列特性
复合索引前导列特性在MySQL中,如果创建了复合索引(name, salary, dept),就相当于创建了(name, salary, dept)、 (name, salary)和(name)三个索引,这被称为复合索引前导列特性,因此在创建复合索引时应该将 最常用作查询条件的列放在最左边,依次递减。未使用索引select * from employee where salary=8800;select * from employee where dept='部门A';select * fro原创 2020-06-04 17:47:12 · 278 阅读 · 1 评论