Mysql binlog占满服务器导致服务器cpu占满,mysql无法正常连接
一、基础命令
1.查看占用最多的文件
1.1 基础命令
du -sh /*
1.2 查询结果
[root@localhost apache-tomcat-9.0.16]# du -sh /usr/local/*
9.9M /usr/local/bin
4.0K /usr/local/etc
4.0K /usr/local/games
820K /usr/local/include
15M /usr/local/lab
381M /usr/local/lib
4.0K /usr/local/lib64
4.0K /usr/local/libexec
123G /usr/local/mysql
4.0K /usr/local/README.rst
4.0K /usr/local/sbin
108K /usr/local/share
4.0K /usr/local/src
1.3 查询mysql占用的进程
ps -aux|grep mysql
mysql 7669 3.1 3.4 13035904 2240216 ? Sl Jul13 4562:41 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/logs/error.log --pid-file=/usr/local/mysql/data/localhost.pid --socket=/tmp/mysql.sock --port=3306
杀死进程 kill -9
2. 端口查看命令参考
2.1 参考命令
、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
2、netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000
3.清除binlog日志
3.1 查看日志
show binary logs;
3.2 清除日志
RESET MASTER;//删除所有binlog日志,新日志编号从头开始
PURGE MASTER LOGS TO 'mysql-bin.010';//删除mysql-bin.010之前所有日志
PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';// 删除2003-04-02 22:46:26之前产生的所有日志
4. 重启服务
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/logs/error.log --pid-file=/usr/local/mysql/data/localhost.pid --socket=/tmp/mysql.sock --port=3306
5.关闭binlog日志
vi /etc/my.cnf
[client]
#客户端设置
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
bind-address = 0.0.0.0
port = 3306
server_id=61
character_set_server = utf8
collation-server = utf8_general_ci
lower_case_table_names = 1
general_log=0
log_timestamps = SYSTEM
log-error = /usr/local/mysql/logs/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
二、服务器异常处理重点说明
1.停止Mysql
1.为什么停止mysql,CUD操作都会执行写binlog操作,可能会导致日志的持续增长,先停止服务,是为了打断当前所有客户端链接,防止linux服务器内存无端增长。
2.关闭之后系统会释放一部分内存,linux服务器的Mysql客户端命令比如 show bin logs,重启之后可以正常使用。
3.关闭客户端服务、比如tomcat、Navicat等
2. 重启Mysql(binlog开启)
重启之后要做的是先删日志参照第一部分。
3.去掉记日志binlogs
查看 /etc/my.cnf 注释binlog调用