![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
遗失的曾经!
这个作者很懒,什么都没留下…
展开
-
查看未提交事务或sleep session最后执行的sql语句
查看未提交事务或sleep session最后执行的sql语句SELECT *FROM performance_schema.threads t1 JOIN performance_schema.events_statements_current t2 ON t1.THREAD_ID = t2.THREAD_ID JOIN information_schema.processlist t3 ON t3.ID = t1.PROCESSLIST_IDWHERE t3.ID = 21150079;2原创 2022-01-26 18:34:25 · 1435 阅读 · 0 评论 -
通过zabbix数据库批量查询服务器最新磁盘剩余空间
主要涉及两个sqlsql1:select t1.hostid,t1.name from hosts t1 join hosts_groups t2 on t1.hostid=t2.hostid where t1.available=1 and t1.status=0 and t2.groupid in(1,2);t2.groupid in(1,2)为主机群组的groupid,这里举例groupid为1和2,可以直接查询groups表获取groupid。如果不区分群组可以去掉这个条件。sql2原创 2021-10-09 14:52:42 · 727 阅读 · 0 评论 -
slave_exec_mode参数跳过复制异常
通过将slave_exec_mode设置为IDEMPOTENT模式,可以跳过主键冲突错误和删除行不存在错误。set global slave_exec_mode='IDEMPOTENT';stop slave;start slave;接着,可以通过pt工具比对主从数据差异并修复,最后重新调整为严格模式set global slave_exec_mode='STRICT';stop slave;start slave;...原创 2021-10-08 17:51:14 · 203 阅读 · 0 评论 -
python导出mysql授权语句
vi grants.pyimport sysimport getoptimport pymysqlopts, args = getopt.getopt(sys.argv[1:], "m:")for op, value in opts: if op == '-m': mm = value else: sys.exit()def get_conn_master(): conn = pymysql.connect( host原创 2021-07-05 11:06:38 · 116 阅读 · 0 评论 -
MySQL更换内存分配器
除了mysql原生的内存分配器之外,还有两种内存分配器的性能更佳。在之前遇到过mysql内存泄漏的问题中,通过更换内存分配器的方式成功解决。以下是两种内存分配器的配置方法:jemalloc1.安装jemallocgit clone https://github.com/jemalloc/jemalloccd jemalloc./autogen.sh./configuremake && make install2.mysql配置jemalloc修改mysql配置文件,添加[原创 2021-06-15 20:41:33 · 1074 阅读 · 0 评论 -
MySQL查询冗余索引和未使用过的索引
MySQL5.7及以上版本提供直接查询冗余索引、重复索引和未使用过索引的视图,直接查询即可。查询冗余索引、重复索引select * sys.from schema_redundant_indexes;查询未使用过的索引select * from sys.schema_unused_indexes;如果想在5.6和5.5版本使用,将视图转换成SQL语句查询即可查询冗余索引、重复索引select a.`table_schema`,a.`table_name`,a.`index_name`,a.原创 2021-02-02 10:14:11 · 2137 阅读 · 1 评论 -
统计mysql binlog日志总大小
a=`find /export/data/mysql/data/ -name "mysql-bin*"|xargs du -s|awk '{print $1}'|awk '{sum1+= $1}END{print sum1}'`b=$(expr $a / 1024 / 1024)echo $b'G'原创 2021-01-18 14:13:12 · 1142 阅读 · 0 评论 -
误删除了mysql库的user表解决办法
如果线上数据库的user表被误删除了,如果发生了此情况,千万不要慌,可以用多种方法去恢复1.delete from mysql.user;如果是使用delete删除了mysql.user表的数据,直接通过binlog2sql生成回滚数据插入即可。2.drop table mysql.user;或truncate table mysql.user;如果是drop或者truncate最好的方法是使用近期的备份去恢复,因为用户表的变动很小,使用最近的备份基本是能够恢复所有数据的。如果没有备份,首先使用s原创 2020-11-17 14:28:25 · 2746 阅读 · 2 评论 -
mysql查询索引相关信息查询
#索引数大于7的表select table_schema,table_name,count(*) count from (select distinct TABLE_NAME,table_schema,index_NAME from information_schema.STATISTICS)A group by table_schema,TABLE_NAME HAVING count>7 order by count desc ;#组合索引中字段多于5的表select table_sch原创 2020-10-16 15:51:48 · 584 阅读 · 0 评论 -
mysqld: [Warning] World-writable config file ‘/etc/my.cnf‘ is ignored.问题解决
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql初始化mysql时报错mysqld: [Warning] World-writable config file '/etc/my.cnf' is ignored.检查后是my.cnf权限不对,之前因为其他问题以为my.cnf权限不够直接授权为777。报错意思是参数文件权限全局可写,任何一个用户都可以写,有安全隐患所以忽略掉这个配置文件。chmod 644 /et原创 2020-10-13 17:20:03 · 1291 阅读 · 0 评论 -
explain for connection用法
当show processlist时遇到慢sql通常会去看sql的执行计划。如果sql过长会显示不全。一般我们会使用show full processlist去查看完整的语句并explain语句得到执行计划。也可以使用explain for connection直接查看正在执行sql的执行计划。例如:mysql> show processlist;+----+------+-----------------+------+---------+------+----------+----------原创 2020-10-13 14:08:24 · 1250 阅读 · 0 评论 -
mysql执行计划字段解释
idid值有相同,又有不同:id值越大越优先;id值相同,从上往下顺序执行select_type 查询类型PRIMARY:包含子查询SQL中的主查询(最外层)SUBQUERY:包含子查询SQL中的子查询(非最外层)simple:简单查询(不包含子查询、union)derived:衍生查询(使用到了临时表)a.在from子查询中只有一张表b.在from子查询中,如果有table1 union table2,则table1就是derived,table2就是unionunion:上例uni原创 2020-08-03 17:21:21 · 207 阅读 · 0 评论 -
MySQL备份脚本
#!/bin/bash# 备份文件要保存的目录basepath='/data/backup/'user="root"pass="mypassword"mv /data/backup/backup.log /data/backup/backup-$(date +%Y%m%d-%H%M%S).logecho "start time:`date +%s`">>/data/backup/backup.logif [ ! -d "$basepath" ]; then mkdir -p "原创 2020-07-31 09:09:11 · 125 阅读 · 0 评论 -
Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode错误解决
MySQL5.6迁移至5.7,常用的方法是新搭建5.7作为5.6的从库。start slave时遇到报错: Slave_IO_Running: Yes Slave_SQL_Running: No …… Last_Errno: 1755 Last_Error: Cannot execute the current event group in the parallel mode. Encountered event Gtid, relay-log name ./mysq原创 2020-06-19 11:16:31 · 681 阅读 · 0 评论 -
[Err] 1093 - You can't specify target table 'xxx' for update in FROM clause解决方法
执行开发同学提供的删除数据的sql时报错[Err] 1093 - You can't specify target table 'run_result' for update in FROM clause查了相关的资料,这个报错的大概意思是不能按照查出的某些值再更新这张表。原来的语句为DELETEFROM run_resultWHERE fid IN ( SELECT a.f...原创 2020-04-16 11:23:41 · 1418 阅读 · 0 评论 -
Truncated incorrect DOUBLE value: 'xxx'的解决方法
线上执行sql时发现一条普通的update sql语句执行报错Truncated incorrect DOUBLE value: 'xxx'仔细检查了一下sql语法并没有问题,怀疑是字段类型的问题执行的sql为UPDATE info SET STATE=1 WHERE STATE<>1果然,检查表结构后发现state字段为varchar类型,where条件后的STATE<...原创 2020-04-16 10:34:30 · 8117 阅读 · 0 评论 -
BLOB,TEXT GEOMETRY or JSON column 'xxx' can't have a default value query问题解决
11原创 2020-03-20 16:27:32 · 12151 阅读 · 6 评论 -
MySQL远程实时备份binlog
由于业务容灾等级的提升,需要对MySQL服务器当前正在写的二进制日志文件进行备份示例:/usr/local/mysql/bin/mysqlbinlog --raw --read-from-remote-server --host=192.168.0.1 --port=3306 --user=repl --password=xxxxxxxx --result-file=/data/backup/...原创 2020-03-09 11:09:39 · 406 阅读 · 0 评论 -
MHA manage节点安装报错解决
安装mha的manage节点时报出一下错误:rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm error: Failed dependencies:perl(Log::Dispatch) is needed by mha4mysql-manager-0.56-0.el6.noarchperl(Log::Dispatch::File) is ...原创 2020-02-05 19:42:42 · 2185 阅读 · 1 评论 -
mysql设置账号过期
ALTER USER ‘testuser’@‘localhost’ PASSWORD EXPIRE INTERVAL 30 DAY;原创 2019-02-25 13:52:04 · 858 阅读 · 0 评论 -
archery docker版升级
1.备份数据库mysqldump -u root -p mypassword --default-character-set=utf8 -R --triggers --events --opt --set-gtid-purged=on --hex-blob --single-transaction --master-data=2 --all-databases>backup....原创 2019-07-09 09:53:14 · 766 阅读 · 0 评论 -
MYSQL为什么long_query_time设置了1秒,slow log中记录了小于1秒的慢查询
可能原因有两种:1.打开了log_queries_not_using_indexes选项,记录了未走索引的SQL"(root@localhost) 11:17: [(none)]>show variables like '%log_queries_not_using_indexes%';+-------------------------------+-------+| Varia...原创 2019-07-15 11:18:47 · 2033 阅读 · 0 评论 -
mysql kill 超过1分钟的语句
刚上线的应用由于sql写的有问题,不断将耗费资源的大sql向mysql发过来,执行很长时间执行不完,导致数据库CPU被占到100%,只能紧急将运行时间较长的sql手动kill掉,一个一个kill不现实,以下语句可以生成kill语句,直接复制出来执行即可,可以更改需要杀掉执行指定时间的进程,例如60秒select concat('kill ', id, ';') from information_...原创 2019-07-11 08:42:46 · 1260 阅读 · 0 评论 -
mysql5.7参数简单介绍
以下my.cnf简单介绍了各个参数的作用,除了buffer_pool_size,server id等参数需要按照服务器配置修改,其余大部分参数不用修改,可以直接用于生产环境。[client]port=3306#如果启用了多实例mysql时,可以通过socket文件来快速的登录mysql对应不同端口下的实例socket=/tmp/mysql.sock default-character-...原创 2019-07-21 05:19:34 · 567 阅读 · 0 评论 -
mysql定时发送慢日志到邮件
1.安装 mailx并配置参数文件yum install mailx -y填写smtp地址等相关配置vi /etc/mail.rcset from=set smtp=set smtp-auth-user=set smtp-auth-password=2.安装pt工具安装步骤就不一一介绍了,可以参考https://blog.csdn.net/u014609263/article/...原创 2019-07-26 11:23:51 · 384 阅读 · 0 评论 -
Mysql数据库重命名
首先,如果是数据库中的表都为MyISAM存储引擎,直接停库,将对应数据库文件直接重命名为新的启动数据库即可。由于线上环境几乎都是Innodb存储引擎,因此这里主要讨论Innodb存储引擎的表数据库如何重命名。方法1.新建数据库,重命名原库的所有表再删除原库,也是最常用的方法,速度非常快。create database new_database;rename table old_databa...原创 2019-08-30 16:25:47 · 17848 阅读 · 1 评论 -
MySQL ALTER TABLE报错Duplicate entry 'xxx' for key 'PRIMARY'解决方法
在MySQL中执行加字段等操作时可能会报Duplicate entry ‘’ for key 'PRIMARY’的错,例如:mysql> alter table test add aa int;mysql>[Err] 1062 - Duplicate entry '1' for key 'id'原因分析:在MySQL 5.6版本中引入Online DDL的特性,Online ...原创 2019-09-02 10:47:13 · 5884 阅读 · 2 评论 -
mysqldump文件中有SET @@SESSION.SQL_LOG_BIN= 0;解决方法
使用mysqldump导出sql文件什么参数都不带时mysqldump -uroot -pmypassword --all-databases>test.sqlmore test.sql-- MySQL dump 10.13 Distrib 5.7.21, for linux-glibc2.12 (x86_64)---- Host: localhost Database: ...原创 2019-09-09 09:01:50 · 8221 阅读 · 0 评论 -
mysql导出表部分数据
方法一:mysqldump -uuser -ppassword --default-character-set=utf8 -R --triggers --events --opt --set-gtid-purged=off --hex-blob --single-transaction --master-data=2 databases table --where '条件'>test...原创 2019-09-11 09:24:38 · 1459 阅读 · 0 评论 -
zabbix监控windows下的mysql
1.创建监控账号GRANT SELECT,PROCESS,REPLICATION CLIENT ON *.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix';2.创建脚本文件(mysql路径按照自己的安装路径)在D:\zabbix-agent\conf下创建ping.vbsSet objFS =CreateObject("Scripting.F...原创 2019-06-10 14:32:41 · 659 阅读 · 0 评论 -
使用pt-query-digest时遇到报错can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5
安装完pt工具后报错,缺少Digest-MD5的包,直接yum一个即可 yum -y install perl-Digest-MD5原创 2019-06-06 17:16:58 · 2281 阅读 · 0 评论 -
Last_Error: Slave SQL thread retried transaction 10 time(s) in vain, giving up导致主从不同步的解决方法
mysql版本:5.6.34在主库上做了大事务的delete,从库报Last_Error: Slave SQL thread retried transaction 10 time(s) in vain, giving upmysql> show slave status\G;*************************** 1. row ********************...原创 2019-05-23 09:51:05 · 2510 阅读 · 0 评论 -
maatkit使用总结
yum -y install perl*tar zxvf maatkit-7540.tar.gzcd maatkit-7540perl Makefile.PLmake install检查主从数据是否一致mk-table-checksum h=IP地址,u=root,p=密码,P=3306 h=IP地址,u=root,p=密码,P=3306 -d 数据库检查哪些表不一致mk-tabl...原创 2019-03-18 09:42:41 · 761 阅读 · 0 评论 -
percona-toolkit(pt工具)使用总结
1.安装yum install perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-DBI perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -ytar zxvf percona-toolkit-3.0.12_x86_64.tar.gzcd percona-toolkit-3.0.12pe...原创 2019-01-08 14:32:07 · 950 阅读 · 0 评论 -
mysql使用全备文件恢复单个库或者单个表
这里写自定义目录标题使用全备文件恢复单个库sed -n '/^-- Current Database: `数据库名称`/,/^-- Current Database: `/p' 备份文件.sql > db.sql 使用全备文件恢复单个表获得表结构sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `表名`/!d;q' 备份文件.sql 获得inse...原创 2019-03-07 23:06:15 · 427 阅读 · 0 评论 -
zabbix监控mysql死锁
Percona MySQL Server Template算是比较常用的zabbix监控mysql的模板了,监控项也比较齐全,但是没有监控mysql死锁的监控项,如果有需求,就需要另外创建模板或者监控项来监控死锁,这里打算用监控日志的方法来监控。1.将死锁信息记录到error logmysql&gt; show variables like ‘%deadlock%’;±-----------...原创 2019-03-06 10:42:47 · 3359 阅读 · 0 评论 -
Mysql查看某个表大小
查看指定表的大小select concat(round(sum(DATA_LENGTH/1024/1024),2),‘MB’) as data from TABLES where table_schema=‘库名’ and table_name=‘表名’;查看指定数据库的大小select concat(round(sum(DATA_LENGTH/1024/1024),2),‘MB’) as ...原创 2019-02-26 14:37:17 · 10905 阅读 · 1 评论 -
Mysql Group Replication(MGR)搭建
1.准备机器(3台)10.11.13.11 master10.11.13.12 slave10.11.13.241 slave2.host 解析(3台)vi /etc/hosts10.11.13.11 hostname110.11.13.12 hostname210.11.13.13 hostname3INSTALL PLUGIN group_replication SONAME...原创 2019-02-26 13:54:20 · 246 阅读 · 0 评论 -
xtrabackup备份还原
yum list | grep percona-xtrabackupyum -y install percona-xtrabackup-24.x86_64全备innobackupex --user=root --password=密码 --no-timestamp 文件名增量备份innobackupex --user=root --password=密码 --no-timestamp...原创 2019-02-25 13:49:21 · 483 阅读 · 0 评论 -
mydumper使用总结
yum -y install pcre-devel.x86_64 glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake gcc-c++wget https://launchpadlibrarian.net/185032423/mydumper-0.6.2.tar.gztar -zxvf mydumper-0.6.2....原创 2019-02-25 13:46:09 · 518 阅读 · 0 评论