数据库偶尔会响应很慢,看着好像挂掉了,检查进程发现有大量查询语句把表锁住了,提供一个脚本给大家解决锁表导致的Mysql异常。
#!/bin/sh
while :
do
n=`/usr/local/webserver/mysql/bin/mysql -uroot -p"kk41-,dnkkedkd8>/ee" -e 'show processlist;' | grep -i locked |grep -i search_keyword | wc -l`
date=`date +%Y%m%d[%H:%M:%S]`
echo $n
if [ "$n" -gt 50 ]
then
for i in `/usr/local/webserver/mysql/bin/mysql -uroot -p"kk41-,dnkkedkd8>/ee" processlist | grep -i locked |grep -i search_keyword | awk '{print $2}'`
do
/usr/local/webserver/mysql/bin/mysql -uroot -p"kk41-,dnkkedkd8>/ee" kill $i
done
echo "killed it" >> /tmp/sleep.log
echo "$date : $n" >> /tmp/sleep.log
fi
sleep 10
done
以上转自:
http://www.604f.com/read.php?5
分享到:
相关推荐
以下是一些解决MySQL锁表问题的方法: 1. **查看并杀死锁定进程**: 使用`SHOW PROCESSLIST`命令可以查看当前正在执行的SQL查询和它们的状态。如果发现有进程处于"Locked"状态,意味着它正在持有表锁。通常情况下...
在实际使用中,你可以通过阅读和学习这些脚本来提升你的bash脚本编写技能,也可以根据自己的需求修改或复制这些脚本来解决实际问题。 总的来说,这个bash脚本集合提供了一个学习和借鉴的平台,对于熟悉bash脚本、...
在这个文档中,作者详细介绍了如何使用Shell脚本来监控Linux系统下MySQL的主从同步状态,并且通过邮件通知管理员同步错误。以下是根据文档内容总结的关键知识点: 1. **Shell脚本的作用**:Shell脚本能够自动化执行...
至于"shell后台执行",这通常意味着脚本会作为守护进程(daemon)运行,或者使用`nohup`、`&`符号或者`screen`工具来使其在后台持续运行,即使用户注销也不会中断。例如: ```bash nohup ./backup_script.sh & ``` ...
我们将探讨两种在Windows系统中使用批处理(bat)脚本以及Linux系统中使用Bash脚本来检查和启动MySQL服务的方法。 **Windows系统下的方法** 1. **使用Tasklist命令检查进程** 在Windows环境下,你可以通过批处理...
本文将详细讲解如何在Shell脚本中实现多线程,并结合实例介绍如何批量插入MySQL数据库。 首先,我们需要理解为什么要使用多线程。在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对...
本篇将详细解释如何使用Linux Shell脚本来解决MySQL超时Locked进程的问题,并探讨相关的技术要点。 首先,我们要理解MySQL中的“Locked”状态。当一个查询在等待锁时,MySQL会将其标记为Locked状态,这可能导致其他...
可以通过命令`ps -ef | grep mysql`查看MySQL的进程ID,然后使用`kill -9 <PID>`强行终止MySQL进程。但是这种方法不推荐常规使用,因为它可能导致数据损坏。 - **问题3**:如果MySQL服务经常无法正常关闭,需要检查...
如果MySQL服务正在运行,将返回相应的进程ID等信息;如果MySQL服务没有运行,则会提示“未运行”或类似的提示信息。 #### 五、处理启动失败的情况 有时候,MySQL服务可能因为各种原因无法正常启动。在这种情况下,...
`safe_mysqld` 是一个用于安全地启动 MySQL 服务的脚本,它会在启动 MySQL 之前执行一系列检查以确保安全启动。`&` 符号表示将进程放到后台运行。 #### 二、停止 MySQL 服务的方法 对于停止 MySQL 服务的操作,也...
### MySQL 主备机宕机自动切换详解 #### 一、MySQL主备复制机制简介 MySQL复制(Replication)是MySQL数据库系统中一个重要的特性,它允许数据从一台MySQL服务器(称为Master)复制到另一台或多台MySQL服务器...
以上就是完整的MySQL数据库数据存储位置更改流程,需要注意的是,在实际操作过程中可能还会遇到其他问题,比如权限问题、依赖问题等,这些都需要根据具体情况逐一排查解决。在整个迁移过程中,保持耐心和细致的态度...
- 这将下载并安装MySQL服务器的所有必要组件,包括MySQL服务器守护进程(mysqld)和其他相关工具。 4. **启动MySQL服务**: - 安装完成后,需要启动MySQL服务: ```bash sudo systemctl start mysqld ``` 5. ...
- `--with-mysqld-user`: MySQL守护进程使用的用户。 - `--without-debug`: 不包含调试信息。 - `--with-big-tables`: 支持更大的表。 - `--with-charset`: 字符集设置。 - `--with-extra-charsets`: 额外的字符集...
1)安装并启动mysql进程(主和从库都执行) #/bin/bash mysql8_install.sh 注:my.cnf配置文件默认在/etc/目录下,文件名是以你的数据库名命名,例my_test.cnf,mysql.sock在/tmp目录下。 2)配置主从复制(从库执行...
- 使用`pstree`命令查找MySQL进程: ```bash pstree | grep mysqld ``` - 使用`ps`命令查看所有进程: ```bash ps -aux ``` 5. **设置自动启动**: 若要让MySQL在系统启动时自动运行,可以使用`ntsysv`...
MySQL是一个客户端-服务器系统,包含服务器守护进程(mysqld)和多种客户端工具,用于执行数据库操作。`mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz`这个压缩包包含的就是适用于Linux glibc 2.5环境的64位MySQL...
接下来需要将MySQL的配置文件复制到系统的配置目录`/etc`下,并且把MySQL的服务脚本也复制过去,以便能够通过系统的命令来启动和停止MySQL服务: ```bash cp support-files/my-huge.cnf /etc/my.cnf cp support-...
执行MySQL的安装脚本,指定编码格式、基于目录和数据目录: ```bash scripts/mysql_install_db --user=mysql --default-character-set=utf8 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 之后,...