![](https://img-blog.csdnimg.cn/d03af65ceb504e858fefb35c91ea7528.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 68
MySQL
逆轮回
手握日月摘星辰,世间无我这般人。
脚踏阴阳定乾坤,荒古至今我为尊。
展开
-
MySQL(117)MySQL慢查询日志(Slow Query Log)
慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率低,以便进行优化。通俗的说,MySQL 慢查询日志是排查问题的 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。如果不是调优需要,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。默认情况下,慢查询日志功能是关闭的。可以通过以下命令查看是否开启慢查询日志功能。原创 2023-08-06 13:29:23 · 181 阅读 · 0 评论 -
MySQL(116)MySQL通用查询日志(General Query Log)
用查询日志(General Query Log)用来记录用户的所有操作,包括启动和关闭 MySQL 服务、更新语句和查询语句等。默认情况下,通用查询日志功能是关闭的。从结果可以看出,通用查询日志是关闭的,general_log_file 变量指定了通用查询日志文件所在的位置。原创 2023-08-06 13:20:19 · 451 阅读 · 0 评论 -
MySQL(115)MySQL使用二进制日志还原数据库
如果数据库因为操作不当或其它原因丢失了数据,可以通过二进制日志来查看在一定时间段内用户的操作,结合数据库备份来还原数据库。因此,在备份 MySQL 数据库之后,应该删除备份之前的二进制日志。如果备份之后发生异常,造成数据库的数据损失,可以通过备份之后的二进制日志进行还原。另外备份之后,数据库可能进行了一些更新,这时可以使用二进制日志来还原。以上命令可以理解成,先使用 mysqlbinlog 命令来读取 filename.number 中的内容,再使用 mysql 命令将这些内容还原到数据库中。原创 2023-08-06 13:08:47 · 320 阅读 · 0 评论 -
MySQL(114)MySQL二进制日志(Binary Log)详解
二进制日志(Binary Log)也可叫作变更日志(Update Log),是 MySQL 中非常重要的日志。主要用于记录数据库的变化情况,即 SQL 语句的 DDL 和 DML 语句,不包含数据记录查询操作。如果 MySQL 数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。默认情况下,二进制日志功能是关闭的。从结果可以看出,二进制日志是关闭的。原创 2023-07-09 15:58:35 · 307 阅读 · 0 评论 -
MySQL(113)MySQL错误日志(Error Log)详解
错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。原创 2023-07-09 15:35:50 · 350 阅读 · 0 评论 -
MySQL(112)MySQL日志及分类
在 MySQL 中,日志可以分为二进制日志、错误日志、通用查询日志和慢查询日志。例如,一个查询操作比较频繁的 MySQL 中,记录通用查询日志和慢查询日志要花费很多的时间。日志文件还会占用大量的硬盘空间。因此,是否启动日志,启动什么类型的日志要根据具体的应用来决定。为了维护 MySQL 数据库,经常需要在 MySQL 中进行日志操作,包含日志文件的启动、查看、停止和删除等,这些操作都是数据库管理中最基本、最重要的操作。在 MySQL 所支持的日志文件里,除了二进制日志文件外,其它日志文件都是文本文件。原创 2023-07-09 15:21:56 · 94 阅读 · 0 评论 -
MySQL(111)MySQL数据库恢复(LOAD DATA)
系统进行恢复操作时,先执行一些系统安全性的检查,包括检查所要恢复的数据库是否存在、数据库是否变化及数据库文件是否兼容等,然后根据所采用的数据库备份类型采取相应的恢复措施。数据转储是 DBA 定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。数据库恢复机制设计的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。建立冗余数据最常用的技术是数据转储和登录日志文件。通常在一个数据库系统中,这两种方法是一起使用的。数据库恢复是指以备份为基础,与备份相对应的系统维护和管理操作。原创 2023-07-09 15:20:06 · 259 阅读 · 0 评论 -
MySQL(110)MySQL使用SELECTI...INTO OUTFILE导出表数据
数据导出的方式有多种,本节主要介绍使用 SELECTI...INTO OUTFILE 语句导出数据。在 MySQL 中,可以使用 SELECTI...INTO OUTFILE 语句将表的内容导出成一个文本文件。注意:FIELDS 和 LINES 两个子句都是自选的,但是如果两个都被指定了,FIELDS 必须位于 LINES的前面。该语句用 SELECT 来查询所需要的数据,用 INTO OUTFILE 来导出数据。用来指定将查询的记录导出到哪个文件。这里需要注意的是,目标文件不能是一个已经存在的文件。原创 2023-07-09 15:13:33 · 290 阅读 · 0 评论 -
MySQL(109)MySQL恢复数据库(mysql命令)
在 MySQL 中,可以使用 mysql 命令来恢复备份的数据。mysql 命令可以执行备份文件中的 CREATE 语句和 INSERT 语句,也就是说,mysql 命令可以通过 CREATE 语句来创建数据库和表,通过 INSERT 语句来插入备份的数据。注意:mysql 命令和 mysqldump 命令一样,都直接在命令行(cmd)窗口下执行。当数据丢失或意外损坏时,可以通过恢复已经备份的数据来尽量减少数据的丢失和破坏造成的损失。原创 2023-07-09 15:10:34 · 683 阅读 · 0 评论 -
MySQL(108)MySQL mysqldump备份数据库
数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,也会把损失降到最低。数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库从错误状态恢复到备份时的正确状态。原创 2023-07-09 15:07:49 · 163 阅读 · 0 评论 -
MySQL(107)MySQL备份类型
指的是在上次完全备份的基础上,对更改的数据进行备份。热备份可以在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,数据库的读写操作可以正常执行。备份是以防万一的一种必要手段,在出现硬件损坏或非人为的因素而导致数据丢失时,可以使用备份恢复数据,以将损失降低到最小程度,因此备份是必须的。温备份同样是在数据库运行中进行的,但是会对当前数据库的操作有所影响,备份时仅支持读操作,不支持写操作。完全备份是指对数据库进行一个完整的备份,即备份整个数据库,如果数据较多会占用较大的时间和空间。原创 2023-07-09 13:56:26 · 74 阅读 · 0 评论 -
MySQL(106)数据库为什么需要备份?
比如磁盘故障导致整个数据库所有数据丢失,并且无法从已经出现故障的硬盘上面恢复出来时,可以通过最近时间的整个数据库的物理或逻辑备份数据文件,尽可能的将数据恢复到故障之前最近的时间点。操作失误造成数据被误操作后,我们需要有一个能恢复到错误操作时间点之前的瞬间的备份文件存在,当然这个备份可能是整个数据库的备份,也可以仅仅只是被误操作的表的备份。以上列出的是一些数据库备份常见的应用场景,数据库备份还有其它应用场景,这里就不一一列举了。任何数据库都需要备份,备份数据是维护数据库必不可少的操作。原创 2023-07-09 13:52:21 · 101 阅读 · 0 评论 -
MySQL(105)MySQL修改密码的3种方式
在使用数据库时,我们也许会遇到 MySQL 需要修改密码的情况,比如密码太简单需要修改等。本节主要介绍了 3 种修改 MySQL 数据库密码的方法。原创 2023-07-09 13:42:03 · 2876 阅读 · 0 评论 -
MySQL(104)MySQL修改root密码
在 MySQL 中,root 用户拥有很高的权限,因此必须保证 root 用户密码的安全。修改 root 用户密码的方式有很多种,本节将介绍几种常用的修改 root 用户密码的方法。原创 2023-06-26 17:45:11 · 151 阅读 · 0 评论 -
MySQL(103)MySQL root修改普通用户密码
在 MySQL 中,root 用户拥有很高的权限,不仅可以修改自己的密码,还可以修改其他用户的密码。本节主要介绍 root 用户修改普通用户密码的几种方法。原创 2023-06-24 11:14:33 · 438 阅读 · 0 评论 -
MySQL(102)MySQL登录和退出服务器
启动 MySQL 服务后,可以使用以下命令来登录。原创 2023-06-24 11:09:11 · 86 阅读 · 0 评论 -
MySQL(101)MySQL REVOKE:删除用户权限
在 MySQL 中,可以使用 REVOKE 语句删除某个用户的某些权限(此用户不会被删除),在一定程度上可以保证系统的安全性。例如,如果数据库管理员觉得某个用户不应该拥有 DELETE 权限,那么就可以删除 DELETE 权限。原创 2023-06-24 10:59:54 · 873 阅读 · 0 评论 -
MySQL(100)MySQL GRANT:用户授权
授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。在 MySQL 中,拥有 GRANT 权限的用户才可以执行WITH 关键字后面带有一个或多个 with_option 参数。原创 2023-06-24 10:51:55 · 1177 阅读 · 0 评论 -
MySQL(99)MySQL查看用户权限
在 MySQL 中,可以通过查看 mysql.user 表中的数据记录来查看相应的用户权限,也可以使用 SHOW GRANTS 语句查询用户的权限。mysql 数据库下的 user 表中存储着用户的基本权限,可以使用 SELECT 语句来查看。要执行该语句,必须拥有对 user 表的查询权限。注意:新创建的用户只有登录 MySQL 服务器的权限,没有任何其它权限,不能查询 user 表。除了使用 SELECT 语句之外,还可以使用 SHOW GRANTS FOR 语句查看权限。原创 2023-06-24 10:50:20 · 6330 阅读 · 0 评论 -
MySQL(98)MySQL删除用户(DROP/DELETE USER)
在 MySQL 数据库中,可以使用 DROP USER 语句删除用户,也可以直接在 mysql.user 表中删除用户以及相关权限。原创 2023-06-24 10:46:55 · 1045 阅读 · 0 评论 -
MySQL(97)MySQL修改用户(RENAME USER)
在 MySQL 中,我们可以使用 RENAME USER 语句修改一个或多个已经存在的用户账号。RENAME USER <旧用户> TO <新用户>原创 2023-06-24 10:41:46 · 485 阅读 · 0 评论 -
MySQL(96)MySQL创建用户(3种方式)
MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。下面根据实例详细讲解这 3 种方法。原创 2023-06-24 10:30:34 · 10832 阅读 · 0 评论 -
MySQL(95)MySQL db、tables_priv、columns_priv和procs_priv权限表
在 MySQL 数据库中,权限表除了 user 表外,还有 db 表、tables_priv 表、columns_priv 表和 procs_priv 表。原创 2023-06-24 10:26:44 · 130 阅读 · 0 评论 -
MySQL(94)MySQL user权限表详解
MySQL 在安装时会自动创建一个名为 mysql 的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。user 表是 MySQL 中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在 user 表里启用的所有权限都是全局级的,适用于所有数据库。user 表中的字段大致可以分为 4 类,分别是用户列、权限列、安全列和资源控制列,下面主要介绍这些字段的含义。原创 2023-06-24 10:24:00 · 636 阅读 · 0 评论 -
MySQL(93)MySQL设置事务自动提交(开启和关闭)
MySQL 默认开启事务自动提交模式,即除非显式的开启事务(BEGIN 或 START TRANSACTION),否则每条 SOL 语句都会被当做一个单独的事务自动执行。关闭自动提交后,该位置会作为一个事务起点,直到执行 COMMIT 语句和 ROLLBACK 语句后,该事务才结束。如果关闭自动提交,用户将会一直处于某个事务中,只有提交或回滚后才会结束当前事务,重新开始一个新事务。如果开启自动提交,则每执行一条 SQL 语句,事务都会提交一次。下面的示例我们关闭事务自动提交,模拟银行转账。原创 2023-06-22 10:29:02 · 866 阅读 · 0 评论 -
MySQL(92)MySQL执行事务的语法和流程
MySQL 提供了多种存储引擎来支持事务。支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 REDO 日志实现,MyISAM 存储引擎不支持事务。拓展:任何一种数据库,都会拥有各种各样的日志,用来记录数据库的运行情况、日常操作、错误信息等,MySQL 也不例外。例如,当用户 root 登录到 MySQL 服务器,就会在日志文件里记录该用户的登录时间、执行操作等。默认设置下,每条 SQL 语句就是一个事务,即执行 SQL 语句后自动提交。原创 2023-06-21 18:24:20 · 188 阅读 · 0 评论 -
MySQL(91)数据库事务的概念和特性
数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时,事务是作为最小的控制单元来使用的,特别适用于多用户同时操作的数据库系统。例如,航空公司的订票系统、银行、保险公司以及证券交易系统等。原创 2023-06-21 18:13:15 · 71 阅读 · 0 评论 -
MySQL(90)MySQL修改和删除触发器(DROP TRIGGER)
改触发器可以通过删除原触发器,再以相同的名称创建新的触发器。原创 2023-06-21 18:07:39 · 378 阅读 · 0 评论 -
MySQL(89)MySQL查看触发器
查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。本节将详细介绍这两种查看触发器的方法。原创 2023-06-21 18:03:41 · 2422 阅读 · 0 评论 -
MySQL(88)MySQL创建触发器(CREATE TRIGGER)
触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。原创 2023-06-21 17:53:11 · 1364 阅读 · 0 评论 -
MySQL(87)MySQL触发器到底是什么?
MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具。不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工启动,而是通过对数据表的相关操作来触发、激活从而实现执行。比如当对 student 表进行操作(INSERT,DELETE 或 UPDATE)时就会激活它执行。触发器与数据表关系密切,主要用于保护表中的数据。原创 2023-06-21 17:41:50 · 41 阅读 · 0 评论 -
MySQL(86)MySQL流程控制语句详解
在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。MySQL 中流程控制语句有:IF 语句、CASE 语句、LOOP 语句、LEAVE 语句、ITERATE 语句、REPEAT 语句和 WHILE 语句等。下面将详细讲解这些流程控制语句。原创 2023-06-21 17:36:05 · 300 阅读 · 0 评论 -
MySQL(85)MySQL游标(Cursor)的定义及使用
在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用 WHERE 子句来限制只有一条记录被选中。所以有时我们必须借助于游标来进行单条记录的数据处理。一般通过游标定位到结果集的某一行进行数据修改。结果集是符合 SQL 语句的所有记录的集合。原创 2023-06-19 19:58:11 · 570 阅读 · 0 评论 -
MySQL(84)MySQL定义条件和处理程序
MySQL 中可以使用 DECLARE 关键字来定义条件。condition_name 参数表示条件的名称;condition_value 参数表示条件的类型;sqlstate_value 参数和 mysql_error_code 参数都可以表示 MySQL 的错误。sqlstate_value 表示长度为 5 的字符串类型错误代码,mysql_error_code 表示数值类型错误代码。原创 2023-06-19 19:49:48 · 148 阅读 · 0 评论 -
MySQL(83)MySQL变量的定义和赋值
DECLARE 关键字是用来声明变量的;var_name 参数是变量的名称,这里可以同时定义多个变量;type 参数用来指定变量的类型;DEFAULT value 子句将变量默认值设置为 value,没有使用 DEFAULT 子句时,默认值为 NULL。原创 2023-06-18 12:13:27 · 365 阅读 · 0 评论 -
MySQL(82)MySQL调用存储过程和函数
存储过程和存储函数都是存储在服务器端的 SQL 语句集合。要想使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现。存储过程通过 CALL 语句来调用,存储函数的使用方法与 MySQL 内部函数的使用方法相同。执行存储过程和存储函数需要拥有 EXECUTE 权限(EXECUTE 权限的信息存储在 information_schema 数据库下的 USER_PRIVILEGES 表中)。本节主要讲解如何调用存储过程和存储函数。原创 2023-06-18 12:06:49 · 296 阅读 · 0 评论 -
MySQL(81)MySQL存储函数详解
存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。存储函数可以通过 return 语句返回函数值,主要用于计算并返回一个值。而存储过程没有直接返回值,主要用于执行操作。注意:在具体创建函数时,函数名不能与已经存在的函数名重名。除了上述要求外,推荐函数名命名(标识符)为 function_xxx 或者 func_xxx。原创 2023-06-18 11:31:52 · 110 阅读 · 0 评论 -
MySQL(80)MySQL删除存储过程(DROP PROCEDURE)
注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。存储过程被创建后,就会一直保存在数据库服务器上,直至被删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。原创 2023-06-18 11:25:03 · 736 阅读 · 0 评论 -
MySQL(79)MySQL修改存储过程(ALTER PROCEDURE)
如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。如果要修改存储过程的内容,可以先删除原存储过程,再以相同的命名创建新的存储过程;如果要修改存储过程的名称,可以先删除原存储过程,再以不同的命名创建新的存储过程。在实际开发过程中,业务需求修改的情况时有发生,所以修改 MySQL 中的存储过程是不可避免的。在实际开发过程中,业务需求修改的情况时有发生,所以修改 MySQL 中的存储过程是不可避免的。原创 2023-06-18 11:06:43 · 1616 阅读 · 0 评论 -
MySQL(78)MySQL查看存储过程
SHOW CREATE PROCEDURE 存储过程名;BEGINEND查询结果显示了存储过程的定义和字符集信息等。SHOW STATUS 语句只能查看存储过程是操作的哪一个数据库、存储过程的名称、类型、谁定义的、创建和修改时间、字符编码等信息。但是,这个语句不能查询存储过程的集体定义,如果需要查看详细定义,需要使用 SHOW CREATE 语句。原创 2023-06-18 11:00:24 · 488 阅读 · 0 评论