暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

mysql常用运维

open资料酷 2019-09-21
263


基础信息 相关部分

查询数据库版本

select @@version; 

显示正在执行的线程

show processlist;

显示最近的警告详情

show warnings;

询定义的packet大小

select @@max_allowed_packet;

查看slave状态

show slave status

查看某表的创建脚本

show create table tableName;

显示所有数据库

show databases;

切换数据库

use databaseName;

显示所有表

show tables;

查看表结构

desc tableName;

查看表索引

show index from user;

导入数据库

source d:/backupfile.sql


导入导出

导出表结构

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql


导出结构

mysqldump -uroot -proot -d zxb > d:/zxb.sql

导入结构

mysql  -uroot -proot zxb < d:/zxb.sql


导出整个数据库结构和数据

mysqldump -h localhost -uroot -p123456 database > dump.sql


导出单个数据表结构和数据

mysqldump -h localhost -uroot -p123456  database table > dump.sql


导出整个数据库结构(不包含数据)

mysqldump -h localhost -uroot -p123456  -d database > dump.sql


导出单个数据表结构(不包含数据)

mysqldump -h localhost -uroot -p123456  -d database table > dump.sql



实例参数variables 相关部分

查询mysql实例端口

show variables like 'port';

查看实例的socket数据

show variables like 'socket';

查看实例的数据路径

show variables like 'datadir';

指定条件的参数设置查询,例如查询以log_slave开头的参数设置

show variables like 'log_slave%' 

查看是否开启了慢查询日志;ON代表开启。可以在线打开。set global slow_query_log = 1;

show variables like 'slow_query_log';

查看慢查询日志的路径

show variables like 'slow_query_log_file';

查看慢查询定义的阈值,单位是秒。记录的查询是大于该值,不包括该值。

show variables like 'long_query_time';

查看日志的输出格式(file或table)

show variables like 'log_output';

查看日志的时间信息,UTC时间或者SYSTEM时间

show variables like 'log_timestamps';

查看从服务器是否开启慢查询日志,ON代表开启

show variables like 'log_slow_slave_statements';

查看是否将没有使用索引的SQL语句记录到慢查询日志中

show variables like 'log_queries_not_using_indexes';

集合上面的参数一起使用,限制每分钟内,在慢查询日志中,记录没有使用 索引的次数。避免日志快速增长

show variables like 'log_throttle_queries_not_using_indexes';

查看创建的临时表的存储引擎类型

show variables like "default%tmp%";

查询log文件大小

show variables like 'innodb_log_file_size';

查询页的大小。一旦数据库通过innodb_page_size设置完成,则后续无法更改。innodb_page_size  是针对普通表的,压缩表不受限制

show variables like 'innodb_page_size'; 

查看缓冲池的大小,每次读写数据都是通过buffer pool;当buffer pool中没有所需的数据时,才去硬盘中获取,该值设置的越大越好,buffer pool 也是以页(page)为单位的,且大小和innodb_page_size一致。

show variables like 'innodb_buffer_pool_size';

查看设置的缓冲池个数,设置多个instance可将热点打散,提高并发性能(建议设置成cpu 个数值)

show variables like 'innodb_buffer_pool_instances'; 

查看buffer pool的状态

show engine innodb status;

查看默认存储引擎的类型

SELECT @@default_storage_engine;

在线调整innodb_buffer_pool_size

set global innodb_buffer_pool_size=2*1024*1024*1024;

查看锁的信息,在数据库sys下执行

select * from innodb_lock_waits;

查看隔离级别

show variables like 'transaction_isolation';

设置隔离级别

set transaction_isolation='read-committed';

查看死锁打印设置,设置为ON,表示将死锁信息打印到err_log中

show variables like 'innodb_print_all_deadlocks';

查看 刷新间隔时间  master thread 每秒刷新redo的buffer到logfile

show variables like "%innodb_flush_log_at_timeout%";

查看binlog的类型,statement 记录SQL语句;ROW 记录SQL语句操作的那些行(行的变化);mixed 混合statement 和 Row 格式(不推荐)。

show variables like 'binlog_format';

查看gtid相关数据及配置

show variables like "%gtid%";

查看 binlog_cache大小

show variables like "binlog_cache_size";

记录了使用临时文件写二进制日志的次数

show global status like 'binlog_cache_disk_use';

从数据库用来还原的并发线程数

show variables like '%slave_parallel_workers%';

mysql查询今天、昨天、本周、本月、上一月 、今年数据

昨天

SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS( 时间字段名) <= 1

今天

select * from 表名 where to_days(时间字段名) = to_days(now());


上周

SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段名,'%Y-%m-%d')) = YEARWEEK(now())-1;

本周

SELECT * FROM  表名 WHERE YEARWEEK(date_format(时间字段名,'%Y-%m-%d')) = YEARWEEK(now()) ;

上月

SELECT * FROM  表名 WHERE PERIOD_DIFF(date_format(now(),'%Y%m'),date_format(时间字段名,'%Y%m') =1

本月

SELECT * FROM  表名 WHERE DATE_FORMAT(时间字段名,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m');


上季度

select * from `表名` where QUARTER(create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

本季度

select * from `表名` where QUARTER(create_time)=QUARTER(now());


上年

select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));

本年

SELECT * FROM 表名 WHERE YEAR(create_time) = YEAR(NOW());

select * from `表名` where YEAR(create_date)=YEAR(NOW());

距当前现在6个月的数据

select * from 表名 where create_time between date_sub(now(),interval 6 month) and now();

当前1小时内的数据

select * from 表名 where create_time >= date_sub(now(), interval 1 hour);

当前30分钟内的数据

select * from 表名 where create_time >= date_add(now(),interval -30 minute);

后30分钟

select date_add(now(),interval 30 minute)

mysql时间函数

now(), current_timestamp();     -- 当前日期时间

current_date();                    -- 当前日期

current_time();                    -- 当前时间

date('yyyy-mm-dd hh:ii:ss');    -- 获取日期部分

time('yyyy-mm-dd hh:ii:ss');    -- 获取时间部分

date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j');    -- 格式化时间

unix_timestamp();                -- 获得unix时间戳

from_unixtime();                -- 从时间戳获得时间

根据format字符串格式化

%S, %s  两位数字形式的秒( 00,01, ..., 59)

%I, %i  两位数字形式的分( 00,01, ..., 59)

%H  两位数字形式的小时,24 小时(00,01, ..., 23)

%h  两位数字形式的小时,12 小时(01,02, ..., 12)

%k  数字形式的小时,24 小时(0,1, ..., 23)

%l  数字形式的小时,12 小时(1, 2, ..., 12)

%T  24 小时的时间形式(hh:mm:ss)

%e  数字形式表示月中的天数(1, 2, ..., 31)

%D  英文后缀表示月中的天数(1st, 2nd, 3rd,...)

%r  12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)

%p  AM或PM

%W  一周中每一天的名称(Sunday, Monday, ..., Saturday)

%a  一周中每一天名称的缩写(Sun, Mon, ..., Sat)

%d  两位数字表示月中的天数(00, 01,..., 31)

%w  以数字形式表示周中的天数( 0 = Sunday, 1=Monday, ..., 6=Saturday)

%j  以三位数字表示年中的天数( 001, 002, ..., 366)

%m  两位数字表示的月份(01, 02, ..., 12)

%c  数字表示的月份(1, 2, ...., 12)

%U  周(0, 1, 52),其中Sunday 为周中的第一天

%u  周(0, 1, 52),其中Monday 为周中的第一天

%M  月名(January, February, ..., December)

%b  缩写的月名( January, February,...., December)

%Y  四位数字表示的年份

%y  两位数字表示的年份

%%  直接值“%”

文章转载自open资料酷,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论