Mysql binlog占满服务器导致服务器cpu占满,mysql无法正常连接

Mysql binlog占满服务器导致服务器cpu占满,mysql无法正常连接

  • 一、基础命令
    • 1.查看占用最多的文件
      • 1.1 基础命令
      • 1.2 查询结果
      • 1.3 查询mysql占用的进程
    • 2. 端口查看命令参考
      • 2.1 参考命令
    • 3.清除binlog日志
      • 3.1 查看日志
      • 3.2 清除日志
    • 4. 重启服务
    • 5.关闭binlog日志
  • 二、服务器异常处理重点说明
    • 1.停止Mysql
    • 2. 重启Mysql(binlog开启)
    • 3.去掉记日志binlogs
    • 4.重启Mysql(binlog关闭)

一、基础命令

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调用

4.重启Mysql(binlog关闭)

你可能感兴趣的:(mysql)