mysql
puppycuty
运维工程师3年
展开
-
mysq数据库大表清理
近期,服务器数据库cpu使用率狂涨,每天发送好几次预警邮件,但是每日的用户并没有怎么增加,一些业务表都增加了索引了呀,这里写一点简单的思路,因为近期后台的java代码也长期没有更新了,预测瓶颈应该是出在了数据库上面,先统计数据库百万级别以上的表有哪些。这里提供一个脚本。统计所有数据库的表行数。#!/bin/bash###get every database's table's linesUSER=rootPASSWD=123456MYSQLLOGIN="mysql -u$USER -p$PAS原创 2020-10-21 10:57:57 · 198 阅读 · 0 评论 -
数据库备份脚本单库备份和单表备份
近期因为mysql数据库数据量增加的比较快,使用的阿里云的主机,内网远程备份,在备份过程中耗用了大量的带宽,导致用户在登陆的时候出现短暂登陆不上的情况,以前的数据库备份脚本是整库备份,备份了日志表等一些相对不重要的表,无形中增加了备份的时间,故花了点时间将脚本改了一下。 以前的脚本-----按库进行全备 #!/bin/bashMYUSER=rootMYPASS=123456MYLOGIN="mysql -u$MYUSER -p$MYPASS"MYDUMP="m...原创 2020-09-15 14:57:30 · 332 阅读 · 0 评论 -
mysql备份
Mysql备份备份类型: 热备份,温备份,冷备份 热备份:读写不受影响 温备份:仅仅可以执行读操作 冷备份:离线备份,服务停止,读写操作均终止物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件完全备份。增量备份和差异备份...原创 2019-12-19 21:37:20 · 154 阅读 · 0 评论 -
mysql5.7每次启动报pid错误不能写入
mysql5.7安装后出现无法启动,建立/var/run/mysqld 并赋权mysql用户解决了启动的问题,但是重启系统后又出现无法启动的问题,导致/var/run/mysqld 目录每次重启后都需要手动去创建并赋权mysql用户才能起到mysql,可以说,这是mysql5.7的一个小BUG,经测试,现给出终极解决方案:先修改my.cnfpid-file=/var/lib/my...原创 2019-10-31 09:30:51 · 1062 阅读 · 2 评论 -
MySql怎样追踪用户操作(增删改)记录
有时,我们想追踪某个数据库操作记录,如想找出是谁操作了某个表(比如谁将字段名改了)。二进制日志记录了操作记录,线程号等信息,但是却没有记录用户信息,因此需要结合init-connect来实现追踪。init-connect,在每次连接的初始化阶段,记录下这个连接的用户,和connection_id信息。 实验步骤:1:建监控连接信息的表use dba;create tabl...转载 2018-08-13 11:15:54 · 7008 阅读 · 0 评论 -
MySQL 5.7 rpm包安装
注意版本和此次更新时间 2017-12-03 版本:mysql-5.7.20-1.el6.x86_64 环境:linux6.x 官方下载地址: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar 解压: tar -xvf mysq...转载 2018-08-21 00:16:38 · 1877 阅读 · 1 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一...转载 2019-03-13 11:55:38 · 62 阅读 · 0 评论 -
mysql中的几种join 及 full join问题
【注意】:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现初始化SQL语句:/*join 建表语句*/drop database if exists test;create database test;use test; /* 左表t1*/drop table if exists t1;cr...原创 2019-03-22 14:37:13 · 810 阅读 · 0 评论 -
MySQL 存储过程
转载自https://www.runoob.com/w3cnote/mysql-stored-procedure.htmlMySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时...转载 2019-05-30 16:55:53 · 193 阅读 · 0 评论 -
Centos7 安装MySQL 5.7 (通用二进制包)
1.下载安装包下载地址https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz安装文档https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html2.创建用户和组groupadd my...转载 2019-06-11 15:27:26 · 246 阅读 · 0 评论 -
mysql操作查询结果case when then else end用法举例
转载自https://www.cnblogs.com/clphp/p/6256207.htmlCase具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex =...转载 2019-07-08 14:42:00 · 214 阅读 · 0 评论 -
Mysql数据库碎片清理
目录1.查看数据库的数据存放目录2.进入目录查看数据文件3.清理myisam的磁盘碎片4.innodb引擎碎片清理1.查看数据库的数据存放目录show variables like '%dir%';2.进入目录查看数据文件innodb引擎myisam引擎查看ibdata查询数据库中大于磁盘碎片大...原创 2019-06-27 14:40:01 · 6013 阅读 · 1 评论 -
Amoeba+Mysql实现数据库读写分离
转载https://www.cnblogs.com/liuyisai/p/6009379.html转载 2019-06-28 09:19:57 · 136 阅读 · 0 评论 -
mysql5.7设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
【问题】有时候,只是为了自己测试,不想密码设置得那么复杂,譬如只想设置root的密码为123456。SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');但是会报错:mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');ERROR 1819 (HY000): You...转载 2018-07-13 16:29:12 · 578 阅读 · 0 评论 -
mysql 查询缓存 query_cache_type
sql_cache意思是说,将查询结果放入查询缓存中。sql_no_cache意思是查询的时候不缓存查询结果。sql_buffer_result意思是说,在查询语句中,将查询结果缓存到临时表中。这三者正好配套使用。sql_buffer_result将尽快释放表锁,这样其他sql就能够尽快执行。使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓...转载 2018-06-28 16:49:12 · 1005 阅读 · 0 评论 -
Mysql 时间编辑和查询
用户用来查询指定时间的数据:user_event :用户事件表create_time :表中存储时间的字段#获取当月数据SELECT * FROM user_event WHERE DATE_FORMAT(create_time,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')#获取3月份数据SELECT * FROM user_event WHERE DATE_...原创 2018-03-02 11:07:41 · 249 阅读 · 0 评论 -
mysql查询缓存
可以通过下面的SQL查看当前查询缓存相关参数状态:SHOW VARIABLES LIKE '%query_cache%';输出结果类似下面: query_cache_type 查询缓存类型,有0、1、2三个取值。0则不使用查询缓存。1表示始终使用查询缓存。2表示按需使用查询缓存。 如果query_cache_type为1而又不想利用查询缓存中的数据,可以用下面的SQL: SELE...转载 2018-03-13 13:37:27 · 135 阅读 · 0 评论 -
Mysql 之table_open_cache
table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于设置table高速缓存的数量。由于每个客户端连接都会至少访问一个表,因此此参数的值与max_connections有关。缓存机制当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速...转载 2018-03-13 14:37:00 · 1844 阅读 · 0 评论 -
mysql5.6下thread_cache_size参数合理配置详解
发现 thread_cache_size 原来设置好小,这个默认值实质上也偏小,建议大的web项目,要调大这个值。一、多大算合适 :说实话我也不是很清楚,但是查阅了N多中文,英文资料,大部分:1. show status like 'threads%'; 看以下几个值:Variable_name ValueThreads_cached 0Threads_connected 51Th...转载 2018-03-13 15:35:01 · 6044 阅读 · 0 评论 -
mysql经典的8小时问题-wait_timeout
前段时间 现网突然频繁报出 连接不上数据库,偶滴的妖孽,其他地方都是用mysql,也没遇到这个问题呀。java.io.EOFExceptionat at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)at com...转载 2018-03-13 15:36:17 · 1073 阅读 · 0 评论 -
mysql数据库是.frm,.myd,myi备份如何导入mysql
今天找了个案例,琢磨了半天,才分析大概出来,数据库是.frm,.myd,myi备份,不会导入mysql,到网上找了些资料,导入成功。首先说一下这几种文件是干什么的,*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI则是表的索引把mysql数据库的*.frm,*.myd,*.myi,文件导到数据的方法1、最简单就是,直接拷贝到数据库的的data下的数据库文件夹,前提是mysql的版...转载 2018-06-26 14:41:47 · 700 阅读 · 0 评论 -
如何收缩Mysql的ibdata1文件
ibdata1是mysql数据库中一个数据文件了,你会发现它来越大了,下面我来介绍收缩Mysql的ibdata1文件大小方法。如果你有使用InnoDB来存储你的Mysql表,使用默认设置应该会碰到个非常头疼的问题,在Mysql的数据目录里有个默认只有10MB叫ibdata1的文件没日没夜的增长让你烦透了吧?里面包含了InnoDB引擎存储的所有索引和数据信息,很可惜Mysql在设计的时候就没有收缩I...转载 2018-06-26 15:57:06 · 124 阅读 · 0 评论 -
Mysql -xtrabackup
服务:xtrabackup安装:rpm安装#wget http://mirror.neu.edu.cn/mysql/Downloads/MySQL-5.5/MySQL-shared-compat-5.5.47-1.linux2.6.x86_64.rpm#rpm –ivh MySQL-shared-compat-5.5.47-1.linux2.6.x86_64.rpm# yum install pe...转载 2018-06-26 17:30:39 · 119 阅读 · 0 评论 -
mysql explicit_defaults_for_timestamp 变量的作用
mysql 中有这样的一个默认行为,如果一行数据中某些列被更新了,如果这一行中有timestamp类型的列,那么么这个timestamp列的数据也会被自动更新到 更新操作所发生的那个时间点;这个操作是由explicit_defaults_for_timestamp这个变更控制的 一、体验一下mysql的默认更新行为:mysql> create table t(x int ,y timesta...原创 2018-06-20 13:22:11 · 948 阅读 · 0 评论 -
mysql5.7日志时间与系统时间不一致
阅读数:4363在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数且默认安装后error_log,slow_log 日志时间戳默认为UTC,因此会造成与系统时间不一致,与北京时间相差8个小时SHOW GLOBAL VARIABLES LIKE 'log_timestamps';+-----...转载 2018-06-20 13:25:51 · 748 阅读 · 0 评论 -
表空间迁移
表空间迁移。有如下原因你可能需要将InnoDB表复制到不同的数据库服务器上。不增加生产负载的情况下生成 一个报表在一个新的服务器上建立一个和生产上数据相同的表做一个备份在发生问题或错误操作时用于恢复快速将数据从一个服务器迁移到另一个服务器命令FLUSH TABLES ... FOREXPORT 使.ibd文件保持一致的状态。只有文件处于一致的状态我们才可以复制它。这个文件也会同时创建一个扩展名.c...原创 2018-06-27 17:40:08 · 1440 阅读 · 0 评论 -
select count()函数
COUNT() 函数返回匹配指定条件的行数。SQL COUNT() 语法SQL COUNT(column_name) 语法COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):SELECT COUNT(column_name) FROM table_nameSQL COUNT(*) 语法COUNT(*) 函数返回表中的记录数:SELECT COUNT(*) FROM ...原创 2018-03-01 14:10:16 · 3809 阅读 · 0 评论 -
mysql 之Explain
1)、id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。 2)、select_type列常见的有:A:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位...转载 2018-03-15 09:49:35 · 103 阅读 · 0 评论