目录 日志系统 日志模块 redo log binlog 一条更新 SQL 语句执行过程 两阶段提交 日志系统 上一篇学习了 SQL 的执行过程,这一篇主要的学习内容就在其基础上新增了一个重要的知识点,...日志系统。...这就是 MySQL 日志系统中的一个重要角色 redo log redo log 是一个可循环写的一个文件组。如一组 4 个文件 0 - 1 - 2 - 3 。...MySQL 整体来看有两块:一块是 Server 层,它主要做的是 MySQL 功能层面的事情;还有一块是引擎层,负责存储相关的具体事宜。...一条更新 SQL 语句执行过程 通过一条更新 SQL 来了解学习 MySQL 的日志系统。
MySQL 日志系统 一. redo Log ? redo log 是 InnoDB 引擎特有的功能,是物理日志。...当 MySQL 执行更新操作时,InnoDB 引擎就会先把记录写到 redo log 里面,并更新内存,这个时候更新就算完成了。...同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做的。...二. binlog binlog 是 MySQL server 层提供的日志。...两阶段提交是跨系统维持数据逻辑一致性时常用的一个方案。 五. MySQL 的崩溃恢复规则 MySQL 主要依赖 redo log 进行崩溃后的数据恢复。
首先进入MySQL官网下载rpm安装包 用yum install mysql80-community-release-el7-3.noarch.rpm 安装 yum repolist all|grep...mysql可以看到仓库默认开启的是8.0, yum install yum-utils –y 安装yum工具 我们要安装的是5.7 yum-config-manager --disable mysql80...-community关闭8.0版本 yum-config-manager --enable mysql57-community开启5.7版本 yum install mysql-community-server...mysqld启动 systemctl status mysqld查看状态 ps -ef|grep mysqld查看进程 cat /var/log/mysqld.log查看数据库默认密码 登录改密码 mysql...indentified by '******'; 创建数据库 create database wordpress; 查看数据库 show databases; 查看用户权限 select user,host from mysql.user
更新语句的执行流程 MySQL可以恢复到半个月内任意一秒的状态....mysql> create table T(ID int primary key, c int); 这个表有一个主键ID和一个整型字段c,若要将ID=2这一行的值加1 mysql> update T set...当有一条记录需要更新时,InnoDB引擎就会将记录先写到redo log并更新内存,此时更新就算完成了,同时引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做....如何将数据库恢复至半个月内任意一秒的状态 binlog会记录所有逻辑操作,并且采用追加写的形式,如果DBA承诺半个月内可以恢复,则备份系统中一定会保存最近半个月的所有binlog,同时系统会定期做整库备份...先写redo log 再写binlog 假设redo log写完,binlog还没有写完时,MySQL进程异常重启,根据redo log,即使系统崩溃,仍然可以将数据恢复过来,所以恢复后c的值为1.
MySQL的授权系统的一个重要功能是为数据库分配具有权限的用户。当用户通过认证后,MySQL将通过下记问题验证用户的权限: 当前的用户是谁? 用户具有哪些权限?...管理员权限 管理员权限在全局范围内赋予,允许用户进行下记活动: FILE:从主机的文件系统中的文件读取/写入SQL语句执行。...REPLICATION_SLAVE_ADMIN:配置从服务器,并启动/停止复制功能 SYSTEM_VARIABLES_ADMIN:使用“SET GKIBAL”和“SET PERSIST”语句更改全局系统变量...例如, mysql> CREATE USER u1; mysql> GRANT SELECT, INSERT ON *.* TO u1; mysql> REVOKE INSERT ON world.*...FROM u1; 注意,MySQL的授权系统无法为一个指定的对象(例如,数据库,表等)分配一个密码,也无法显示地拒绝一个指定的用户访问指定的对象(可以通过撤销部分权限在schema级别实现),并且无法实现行级别的授权
系统信息函数是用来查询MySQL数据库的系统信息。 系统信息函数包括查询数据库版本、数据库当前用户等信息。...MySQL系统信息函数如下表所示: version() 返回数据库的版本号 connection_id() 返回服务器的连接数 database() 返回当前数据库名 schema() 返回当前数据库名...返回字符串str的字符编码 collation(str) 返回字符串str的字符排列方式 last_insert_id() 返回最后生成的auto_increment(自动增长)的值 练习代码: ## MySQL...系统信息函数 select version(),connection_id(); select database(),schema(); select user(),system_user(),session_user
MySQL的各种选项除了可以通过命令行和配置文件进行设置,还可以通过服务器的系统变量进行设置。本篇将介绍MySQL服务器的系统变量。...MySQL的服务器系统变量影响的范围有两种,全局变量(GLOBAL)和会话变量(SESSION)。全局变量影响服务器全体的操作,会话变量仅影响当前客户端的连接。...global_variables;全局系统变量 session_variables:当前会话的变量 variables_by_thread:当前活动的每个会话变量 persisted_variables...:持久化的全局变量 variables_info:最近设置系统变量的来源信息 查看全部变量及变量值使用如下语句: SHOW [GLOBAL!...该文件将在MySQL启动的最后进行读取,因此,其中记载的变量值的优先级将高于配置文件和命令行输入的值。 以上内容是关于MySQL服务器系统变量的介绍,感谢关注“MySQL解决方案工程师”!
1 数据库分类 MySQL Oracle redis 2 MySQL 存储引擎有哪些 ENGINE=InnoDB 提供事务安全表,支持外键。 ...7 Mysql有哪些索引:fulltext、hash、btree、rtree 8 什么时候该建立索引 1)表的主键、外键必须有索引 2)数据量超过300的表应该有索引 3)经常与其他表进行连接的表
当前环境:VMware 15.1 、CentOS 7.6 、MySQL 5.7 软件包较大,请提前下载[1]好~ https://dev.mysql.com/get/Downloads/MySQL-5.7.../mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar 如果是虚拟机环境请拷贝到Linux系统内 一、安装前准备 #1....在线下载MySQl软件包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar...mysql -uroot –p #修改成新的密码 mysql> set password = password("P@ssw0rd"); mysql> quit References [1]...下载: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
mysql如何做到恢复半月内任意一秒的数据呢?...如果你的 DBA 承诺说半个月内可以恢复,那么备份系统中一定会保存最近半个月的所有 binlog,同时系统会定期做整库备份。...这里的“定期”取决于系统的重要性,可以是一天一备,也可以是一周一备 当需要恢复到指定的某一秒时,比如某天下午两点发现中午十二点有一次误删表,需要找回数据,那你可以这么做: 首先,找到最近的一次全量备份...假设在 redo log 写完,binlog 还没有写完的时候,MySQL 进程异常重启。...由于我们前面说过的,redo log 写完之后,系统即使崩溃,仍然能够把数据恢复回来,所以恢复后这一行 c 的值是 1。
为了让大家更容易理解sys系统库及其在MySQL性能问题排查中的重要性,我们将基于MySQL 5.8来讨论如何使用sys系统库进行常见的数据库性能问题排查,并通过一些简单的例子加以说明。...什么是sys系统库?sys系统库是MySQL中的一个辅助库,专门为数据库管理员(DBA)设计,旨在帮助更轻松地分析和解决数据库性能问题。...sys系统库使用的基础环境MySQL版本要求sys系统库支持 MySQL 5.6 及以上版本。需要使用 MySQL 5.8 或更高版本,因为这些版本已经充分支持sys系统库的所有功能。...MySQL 5.5及以下版本不支持sys系统库。...无论是了解查询执行情况、事务进度,还是分析系统负载,sys系统库都可以帮助DBA迅速找到问题的根源。通过合理配置和使用sys系统库,可以更轻松地维护和优化MySQL数据库。
MySQL系统变量(system variables)实际上是一些系统参数,用于初始化或设定数据库对系统资源的占用,文件存放位置等等。...这些个系统变量可以分为全局以及会话级别层面来修改,有些也可以进行动态修改。本文主要介绍了系统变量的一些概念以及如何设置查看这些系统变量。...当然我们数据库系统启动后,有些系统变量(参数)也可以通过动态修改来及时调整数据库。这个系统变量在Oracle里边是通过pfile或者spfile来控制,称之为参数,是一个意思。 ...2、set设置系统变量的用法 --当前的版本 mysql> show variables like 'version%'; +-------------------------+------------...root@localhost[tempdb]> show variables; --该命令会输出当前系统全部系统变量 --查看sort_buffer mysql> show variables like
下载MySQL wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz.../local/mysql 目录下创建data文件夹 更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限 cd mysql/ mkdir data chown -R mysql:mysql...-R mysql:mysql /var/log/mariadb 启动mysql /usr/local/mysql/support-files/mysql.server start 添加软连接 ln...-s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql...Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/linux系统下安装mysql
一、操作步骤 1.1 配置主节点 1.1.1 开启mysql binlog,设置唯一服务ID 在配置文件/etc/my.cnf 增加以下内容 #集群中唯一即可 server-id=100 #开启...binlog并设置文件名为mysql-bin log-bin=mysql-bin 1.1.2 重启mysql服务 service mysqld restart 1.1.3 创建用户并授权同步权限 create...服务 service mysqld restart 1.1.3 进入从库mysql,配置需要复制的主节点信息 change master to master_host = "xxx.xxx.xxx",...mysql主从同步涉及三条线程:主节点:binary log dump thread,从节点:I/O thread ,SQL thread。...根据查阅相关资料,mysql5.5版本及之前是仅支持单线程的。但是为了提高同步效率,从mysql 5.6 版本开始支持多线程模式,并且从5.6 - 5.7的各个版本中对多线程复制策略都有新的迭代。
MySQL中有两个储存日志的地方: server层的bin.log 其主要作用就是为数据库做备份 innoDB中的redo.log 主要作用是为数据库的变更状态 关于对binlog的大概了解: binlog...关于对redolog的大概了解: redoloG是innoDB特有的日志系统,在MYSQL初始的引擎中MYISAM中是没有这个redolog这个日志系统的。
mysql> set session max_heap_table_size=1024*1024; Query OK, 0 rows affected (0.02 sec) mysql> create...MySQL并没有为所有MEMORY表的总容量做任何限制。这个变量仅用于单个表。...MySQL使用memory存储引擎来支持这些内部临时表,但是内部临时表的容量超过max_heap_table_size和tmp_table_size中的最小值是,MySQL会在临时位置创建一个基于MyISAM...当定义输出位置为file是,日志的输出文件分别由slow_query_log_file和general_log_file系统变量来定义。...如果这个变量为table,日志输出将会分别记录在mysql.slow_log和mysql.general_log表中。这两个表是在内部以CSV存储引擎定义的,所以不支持任何索引。
DBA可以通过mysql数据库的user表查看认证信息,每一行表示一个独立的用户账户。...MySQL localhost:3309 ssl SQL > SELECT user,host, authentication_string from mysql.user\G **********...本地连接 使用mysql客户端连接本地服务器时指定用户名和密码 mysql -u username -ppassword 注意,-p后面直接输入密码,没有空格。...默认的主机名为“localhost”,用于标识类Unix系统的socket连接,如果指定连接选项“--protocol=TCP”或者使用“-h 127.0.0.1”则通过TCP/IP进行连接。...远程连接 如果用户需要从一个远程客户端连接mysql服务器,需要在连接时指定客户端所在的主机名(不是MySQL服务器主机名,mysql.user表中的客户端名称)。
有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。 在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。...table_priv columns_priv proc_priv sys sys_config : 这是在这个系统库上存在的唯一一个表 sys数据库表说明 CREATE TABLE `sys_config...中所有数据库的名称 show processlist 显示系统中正在运行的所有进程,也就是当前正在执行的查询。...for user_name@localhost 显示一个用户的权限,显示结果类似于grant 命令 show index from [table_name] 显示表的索引 show status 显示一些系统特定资源的信息...,例如,正在运行的线程数量 show variables 显示系统变量的名称和值 show privileges 显示服务器所支持的不同权限 show create database [database_name
MySQL服务端的系统变量操作 上回学习中,我们介绍了一些 MySQL 中的客户端命令行工具。今天,我们则回过来看一些服务端的操作,先从服务端的系统变量以及状态信息看起。...查看系统变量信息 对于系统变量信息来说,SHOW VARIABLES 这个命令相信大家不会陌生,这个命令就是用于在 mysql 客户端中查看系统变量的。...对于系统变量的修改,可以有两种方式,一种是服务启动时通过启动选项来指定变量参数,另一种则是在系统运行过程中在 mysql 客户端进行动态修改。这两部分的内容我们分开来看。...mysql> SET GLOBAL max_connections=20; Query OK, 0 rows affected (0.00 sec) mysql> show variables like...对于 MySQL 的优化来说,选项参数以及配置文件中的配置参数相关的优化其实大部分都是在针对系统变量进行配置。当然,也有一部分配置选项并不是系统参数。但是核心的内容确实都和系统参数有着千丝万缕的联系。
很多小伙伴以为把MySQL目录直接删除就是把MySQL卸载了,这是一个非常错误的方法, 本篇文章将为大家分享一下Linux系统如何彻底卸载MySQL,有需要的小伙伴可以参考一下。...一、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql rpm -qa|``grep` `-i mysql 可以看到如下图的所示: 显示之前安装了: MySQL-client-5.5.25a...-1.rhel5 MySQL-server-5.5.25a-1.rhel5 2、停止mysql服务、删除之前安装的mysql 删除命令:rpm -e –nodeps 包名 rpm -ev MySQL-client...-5.5.25a-1.rhel5 3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库 find` `/ -name mysql 查找结果如下: find` `/ -name mysql...` `/var/lib/mysql``/var/lib/mysql/mysql``/usr/lib64/mysql 删除对应的mysql目录 rm` `-rf ``/var/lib/mysql``rm
领取专属 10元无门槛券
手把手带您无忧上云