![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 69
bjgaocp
这个作者很懒,什么都没留下…
展开
-
select 通用语法
MySQL SELECT原创 2022-06-17 16:28:20 · 380 阅读 · 0 评论 -
MySQL别名应用
表别名 :SELECT t.tname,GROUP_CONCAT(CONCAT(st.sname,":",sc.score))FROM teacher as tJOIN course as cON t.tno=c.tnoJOIN scON c.cno=sc.cnoJOIN student as stON sc.sno=st.snoWHERE sc.score<60GROUP BY t.tno表别名是全局调用的.列别名:SELECT t.tname as 讲师名 ,GROUP_原创 2021-08-31 13:11:45 · 172 阅读 · 0 评论 -
多表连接查询(内连接)
多表连接查询(内连接)3.1 作用单表数据不能满足查询需求时.例子: 查询世界上小于100人的城市,所在的国家名,国土面积,城市名,人口数city:SELECT countrycode,NAME,population FROM city WHERE population<100;PCN Adamstown 42countryDESC country;CODENAMESurfaceAreaSELECT NAME ,SurfaceArea FROM country.原创 2021-08-31 13:10:23 · 2116 阅读 · 0 评论 -
select 通用语法(单表)
DQL 介绍selectshowselect 语句的应用2.1 select单独使用的情况***mysql> select @@basedir;mysql> select @@port;mysql> select @@innodb_flush_log_at_trx_commit;mysql> show variables like ‘innodb%’;mysql> select database();mysql> select now();..原创 2021-08-31 09:52:48 · 401 阅读 · 0 评论 -
MySQL锁的监控和处理
1 查看当前是否有锁等待 *****show status like ‘innodb_row_lock%’;关注点:Innodb_row_lock_current_waits 当前锁等待的数量Innodb_row_lock_waits 累计锁等待数量2 查看哪个事务在等待 (谁被阻塞了) 这一步可以不用操作 直接执行第三步 ***SELECT * FROM information_schema.INNODB_TRX;或SELECT * FR原创 2020-09-02 15:29:01 · 599 阅读 · 0 评论 -
MySQL优化
未优化前的压力测试db01 [(none)]>create database test01 charset utf8mb4;db01 [(none)]>use test01;db01 [test01]>set sql_log_bin=0;db01 [test01]>source t100w.sqldb01 [test01]>grant all on . to root@‘localhost’ identified by ‘123’;[root@db01 ~]# my原创 2020-09-02 10:07:06 · 90 阅读 · 0 评论 -
Mycat数据库分布式架构方式
数据库分布式架构方式3.1 垂直拆分3.2 水平拆分range取模枚举hash时间等等Mycat基础应用4.1 主要配置文件介绍rule.xml *****,分片策略定义schema.xml *****,主配置文件server.xml *** ,mycat服务有关log4j2.xml *** ,记录日志有关*.txt ,分片策略使用的规则 4.2 用户创建及数据库导入db01:mysql -S /data/3307/mysql.sockg..原创 2020-08-28 10:51:17 · 106 阅读 · 0 评论 -
MySQL-分布式架构-MyCAT
MyCAT基础架构图MyCAT基础架构准备1.1 环境准备:两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 33101.2 删除历史环境:pkill mysqld\rm -rf /data/330*\mv /etc/my.cnf /etc/my.cnf.bak1.3 创建相关目录初始化数据mkdir /data/33{07…10}/data -pmysqld --initialize-insecure --user=mysql --dat.原创 2020-08-28 10:40:53 · 104 阅读 · 0 评论 -
MHA配合Atlas实现读写分离
Atlas 介绍Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。下载地址https://github.com/Qihoo360/Atlas/releases注意:1、Atlas只能安装运行在64位的系统上2、Centos 5.X安装 Atlas-XX.el5.原创 2020-08-24 13:10:06 · 138 阅读 · 0 评论 -
MySQL高可用 MHA部署(2)
MHA FailOver过程详解什么是Failover?故障转移.主库宕机一直到业务恢复正常的处理过程(自动)Failover让你实现怎么做?(1) 快速监控到主库宕机(2) 选择新主(3) 数据补偿(4) 解除从库身份(5) 剩余从库和新主库构建主从关系(6) 应用透明(7) 故障节点自愈(待开发…)(8) 故障提醒MHA的Failover如何实现?从启动—>故障—>转移—>业务恢复(1) MHA通过masterha_manger脚本启动MHA的功能.(2原创 2020-08-20 10:32:06 · 166 阅读 · 0 评论 -
MySQL高可用 MHA部署(1)
MySQL主从模式使用的是GTID介绍GTID(Global Transaction ID)是对于一个已提交事务的唯一编号,并且是一个全局(主从复制)唯一的编号。它的官方定义如下:GTID = source_id :transaction_id7E11FA47-31CA-19E1-9E56-C43AA21293967:29什么是sever_uuid,和Server-id 区别?核心特性: 全局唯一,具备幂等性GTID核心参数重要参数:gtid-mode=onenforce-gtid-c原创 2020-08-20 10:14:16 · 166 阅读 · 0 评论 -
MySQL单表恢复
如果误删除的表只有10M,而备份有500G,该如何快速恢复误删除表?drop table city;create table city like city_bak;alter table city discard tablespace;cp /backup/full/world/city.ibd /application/mysql/data/world/chown -R mysql.mysql /application/mysql/data/world/city.ibdalter tab...原创 2020-08-07 10:08:59 · 201 阅读 · 0 评论 -
模拟Xtrabackup + Binlog恢复
模拟数据create database full charset utf8mb4;use full;create table t1 (id int);insert into t1 values(1),(2),(3);commit;进行周日的全备[root@db01 backup]# innobackupex --user=root --password=123 --no-timestamp --parallel=5 /backup/full模拟周一的数据变化create datab..原创 2020-08-06 15:34:36 · 222 阅读 · 0 评论 -
MySQL 慢日志
慢日志(slow-log)作用记录运行较慢的语句,优化过程中常用的工具日志.查看是否开启满日志mysql> select @@slow_query_log;查看是否开启和存放位置show variables like 'slow_query_log%';如何配置## 开关slow_query_log=1## 文件位置及名字slow_query_log_file=/data/mysql/slow.log## 设定慢查询时间long_query_time=...原创 2020-08-03 10:06:30 · 171 阅读 · 0 评论 -
基于GTID,binlog恢复
GTID介绍对于binlog中的每一个事务,都会生成一个GTID号码DDL ,DCL 一个event就是一个事务,就会有一个GTID号.DML语句来讲,begin到commit,是一个事务,就是一个GTID号GTID的组成severid_uuid:TIDseverid_uuid?[root@db01 data]# cat auto.cnf[auto]server-uuid=5559361e-d20d-11ea-8f61-000c2955e23bTID是一个:自增长的数据,从1开始ser原创 2020-07-30 14:20:12 · 459 阅读 · 0 评论 -
InnoDB核心参数的介绍
#存储引擎默认设置default_storage_engine=innodb#表空间模式innodb_file_per_table=1# 共享表空间文件个数和大小innodb_data_file_path=ibdata1:512M:ibdata2:512M:autoextend# "双一" 标准的其中一个 ******innodb_flush_log_at_trx_commit=1-------1 每个事物提交的时候,写入OS buffer并且必须写入磁盘 1 默认模式2 每秒写入 .原创 2020-07-23 16:40:20 · 189 阅读 · 0 评论 -
事务的ACID如何保证
一些概念名词redo log: 重做日志ib_logfile0~1 默认50M , 轮询使用redo log buffer :redo内存区域ibd :存储 数据行和索引data buffer pool :缓冲区池,数据和索引的缓冲LSN : 日志序列号ibd ,redolog ,data buffer pool, redo bufferMySQL 每次数据库启动,都会比较磁盘数据页和redolog的LSN,必须要求两者LSN一致数据库才能正常启动WAL (持久化):wr原创 2020-07-23 13:04:30 · 1834 阅读 · 0 评论 -
MySQL真实故障案例(恢复表)
案例背景:硬件及软件环境:联想服务器(IBM)磁盘500G 没有raidcentos 6.8mysql 5.6.33 innodb引擎 独立表空间备份没有,日志也没开开发用户专用库:jira(bug追踪) 、 confluence(内部知识库) ------>LNMT故障描述:断电了,启动完成后“/” 只读fsck 重启,系统成功启动,mysql启动不了。结果:confulence库在 , jira库不见了能不能暂时把confulence库先打开用着将生产库c原创 2020-07-21 13:51:51 · 258 阅读 · 0 评论 -
独立表空间迁移
查看独立表空间是否开启(5.6之后默认使用独立表空间)mysql> select @@innodb_file_per_table;±------------------------+| @@innodb_file_per_table |±------------------------+| 1 |±------------------------+1 row in set (0.05 sec)独立表空间迁移(1)创建和原表结构一致的空表查原创 2020-07-21 13:48:18 · 152 阅读 · 0 评论 -
MySQL表整理碎片
alter table t111 engine=innodb;注:只能innodb引擎的表才可以.原创 2020-07-20 14:59:15 · 112 阅读 · 0 评论 -
联合索引应用细节
只要我们将来的查询,所有索引列都是<等值>查询条件下,无关排列顺序唯一值多的列放在最左侧abcdacbdadbcacbd等等mysql> desc select * from test where k1='aa' and k2='中国' and k3='aaaa' and k4='中国你好';mysql> desc select * from test where k2='中国' and k3='aaaa' and k4='中国你好' and k1='aa...原创 2020-07-20 09:30:55 · 174 阅读 · 0 评论 -
索引概念
索引的作用类似于一本书中的目录,起到优化查询的作用索引的分类(算法)B树 默认使用的索引类型R树HashFullTextGIS 索引BTREE索引算法演变Btree索引功能上的分类辅助索引(1) 提取索引列的所有值,进行排序(2) 将排好序的值,均匀的存放在叶子节点,进一步生成枝节点和根节点(3) 在叶子节点中的值,都会对应存储主键ID聚集索引(1)MySQL 会自动选择主键作为聚集索引列,没有主键会选择唯一键,如果都没有会生成隐藏的.(2...原创 2020-07-10 09:32:59 · 184 阅读 · 0 评论 -
information_schema的基本应用 统计每个库大小 表大小
information_schema的基本应用 ***tables 视图的应用mysql> use information_schema;mysql> desc tables;TABLE_SCHEMA 表所在的库名TABLE_NAME 表名ENGINE 存储引擎TABLE_ROWS 数据行AVG_ROW_LENGTH ...原创 2020-07-08 13:41:54 · 629 阅读 · 0 评论 -
MySQL group by的sql_mode报错
select user,host from mysql.user group by user;报错原因:1. 在5.7版本中MySQL sql_mode参数中自带,5.6和8.0都没有2. 在带有group by 字句的select中,select 后的条件列(非主键列),要么是group by后的列,要么需要在函数中包裹正确语法格式select user,group_concat(host) from mysql.user group by user;...原创 2020-07-08 09:33:38 · 186 阅读 · 0 评论 -
MySLQ存储结构 innodb 段 区 页
MySQL逻辑存储结构库 ----》Linux目录create database wordpress charset utf-8; ----》mkdir /wordpressshow databases; ----》ls /use wordpress; ...原创 2020-06-29 14:02:56 · 410 阅读 · 0 评论 -
MySQL中mysqld服务器进程结构
1 连接层(1) 提供连接协议 Socket TCP/IP(2) 验证用户名(root@localhost)密码合法性,进行匹配专门的授权表。(3) 派生一个专用连接线程(接收SQL,返回结果) mysql> show processlist;2 SQL层(优化方面至关重要的)(1)验证SQL语法和SQL_MODE(2)验证语义(3)验证权限(4)解析器进行语句解析,生成执行计划(解析树)(5)优化器(各种算法,基于执行代...原创 2020-06-29 11:10:51 · 678 阅读 · 0 评论 -
MySQL二进制安装5.7.26
tar xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql添加全局变量vim /etc/profileexport PATH=/application/mysql/bin:$PATHsource /etc/profile创建mysql用户useradd -s /bin/nologin -M mysql创建mysql数据目录原创 2020-06-15 17:46:08 · 163 阅读 · 0 评论 -
MySQL错误代码
1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1016:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。1020:记录已被其他用户修改102...原创 2019-03-04 21:03:56 · 98 阅读 · 0 评论 -
YUM源安装MySQL5.7
1 下载MySQL源 rpmhttps://dev.mysql.com/downloads/repo/yum/2 安装rpmrpm -ivh mysql80-community-release-el6-3.noarch.rpm3 查看MySQL版本默认是mysql8.0版本yum list|grep mysql4 修改安装MySQL版本本YUM源支持多版本MySQL更改安装...原创 2019-08-05 11:31:25 · 1466 阅读 · 0 评论 -
MySQL索引
索引的基本类型btree 和 hash ,btree是默认索引Btree 必须从根节点开始采用二分法查找hash 算法是基于等值计算的原创 2019-03-03 21:26:35 · 119 阅读 · 0 评论 -
Mysql日志
1 错误日志2 通用查寻日志 general query log记录建立的客户端连接和执行的语句,记录数据库执行的命令,不管这些语句是否正确都会被记录由于数据库操作命令有可能非常多而且执行比较频繁,所以开启了查询日志,数据库可能需要频繁的写入日志,增大服务器IO压力,增加系统开销,所以默认情况下是关闭的,但是开启查寻日志有助于我们分析哪些语句执行密集,执行密集的select语句数据是否可以被...原创 2019-03-05 13:22:08 · 552 阅读 · 0 评论 -
MySQL主主模式
使用主主的前提1 表的主键自增master1vim /etc/my.cnfauto_increment_increment = 2 自增ID的间隔如 1 3 5 间隔为2auto_increment_offset = 1 ID的初始位置log-slave-updateslog-binmaster2vim /etc/my.cnfauto_increment_increment =...原创 2019-03-04 19:56:14 · 834 阅读 · 0 评论 -
MySQL主库宕机从库提权
1登录从库数据库,检查同步进程mysql&amp;amp;gt; show processlist;Waiting for master to send event IO线程Slave has read all relay log; waiting for the slave I/...原创 2019-03-04 19:34:19 · 411 阅读 · 0 评论 -
MySQL延迟同步
目的是 防止主库的误操作造成从库也被误操作。mysql&amp;gt;stop slave;mysql&amp;gt;CHANGE MASTER TO MASTER_DELAY = 1800;单位为秒mysql&amp;gt;start slave;mysql&amp;gt;show slave status \G;?如下图所示: 红色框中参数的意义:Master_Log_File 主库mysql的binlog文件.原创 2019-03-04 19:17:20 · 1473 阅读 · 0 评论 -
MySQL删除无用账户
mysql&gt; select user,host from mysql.user;±-----±--------------+| user | host |±-----±--------------+| root | 127.0.0.1 || root | ::1 || | localhost || root | l...原创 2019-02-27 17:01:31 · 1163 阅读 · 0 评论 -
MySQL binlog操作的一些方法
让mysql从库记录binlog方法需要记录binlog的情况1 当前从库还要做为其他从库的主库2 把从库作为数据库备份服务器是需要开启binlog编辑从库my.cnf打开log-bin = /data/mysql-bin添加log-slave-updates保留binlog文件设置编辑my.cnfexpire_logs_days = 7注:自动删除七天前的binlog日志...原创 2019-03-05 18:03:11 · 536 阅读 · 0 评论 -
MySQL主从同步错误解决方法
例:错误代码1007 数据库已存在无法创建从库操作解决方法:stop slave;set global sql_slave_skip_counter = 1;start slave;注:sql_slave_skip_counter = 1; 让从库复制的时候,在realy-info中指针向下跳一条,忽略上一条操作。方法2 根据错误号跳过指定错误slave-skip-errors = ...原创 2019-03-05 17:43:16 · 684 阅读 · 0 评论 -
MySQL同步过滤
编辑配置文件Master端binlog-ignore-db 二进制日志忽略记录的数据库(多个数据库用,分隔)binlog-do-db 二进制日志记录的数据库(多个数据库用,分隔)slave端replication-do-db 设定需要复制的库(多个数据库用,分隔)replication-ignore-db 设定需要忽略复制的库(多个数据库用,分隔)replication-do-...原创 2019-03-05 17:40:02 · 511 阅读 · 0 评论 -
MySQL基于GTID复制
MySQL 5.6 引入了Gtid 全局事务号每一条sql语句都有一个事务号主从同步可以不在指定logfile post点 主从会自动写上补全数据 依赖对的就是gtid基于GTID的主从复制1、配置主从节点的服务配置文件1.1、配置master节点:[mysqld]binlog-format=MIXEDlog-bin=master-binlog-slave-updates=1g...原创 2019-03-05 16:36:07 · 455 阅读 · 0 评论 -
MySQL安装
MySQL安装分为源码安装和二进制安装1操作系统cat /etc/redhat-releaseCentOS release 6.6 (Final)uname -r2.6.32-504.el6.x86_64mysql版本 5.6.15源码Mysql安装解决依赖关系yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* ...原创 2019-02-26 14:14:23 · 291 阅读 · 0 评论