
Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。
大家也可以用下面的命令查一下(如果不是LNMP,路径可能不同):
代码如下
du -h --max-depth=1 /usr/local/mysql/var/*
如果看到大量大文件,且名为 mysql-bin.000014 这样的,说明你也需要关闭日志文件,因为你不知道哪一天它们会把你VPS的硬盘塞满。
用WINSCP把这些文件删除吧。
如何关闭:
代码如下
vi /etc/my.cnf
找到:
代码如下
log-bin=mysql-bin
binlog_format=mixed
将这两行注释掉,前面加上#
然后保存。
最后用下面的指令重启下LNMP。收工。
代码如下
/root/lnmp restart
linux中还有另一种办法
关闭mysql日志功能
1、进去mysql
代码如下
[root@localhost ~]# mysql -u root -p
Enter password:
2、查看日志文件
代码如下
mysql>show master logs
会出现好多mysql-bin.0000*文件哦 这些都是日志文件
注:如果出现ERROR 1381 (HY000): You are not using binary logging 则说明你的日志文件已经关闭啦
3、关闭mysql日志文件
代码如下
mysql>reset master //关闭日志
mysql>show master logs //查看是否还有日志
mysql>exit
Bye
4、修改mysql配置文件my.cnf。找到log-bin=mysql-bin、binlog_format=mixed 在前面加注释即可
5、重新启动mysql ok
一、关闭MySql日志方法:找到MySql的配置文件,然后注释以下两行即可(即在行首添加#符号就好了)。然后重启MySql服务
log-bin=mysql-bin
binlog_format=mixed
二、删除日志1)手动删除日志
手动删除日志的基本语法如下:
PURGE {MASTER | BINARY} LOGS TO'log_name'
PURGE {MASTER | BINARY} LOGSBEFORE 'date'
①、查看当前日志:
show binary logs
②、查看第一个二进制日志
show binlog events
③、删除指定日志之前的日志
PURGE MASTER LOGS TO'mysql-bin.010'
④、删除指定日期之前的日志
PURGE MASTER LOGS BEFORE'2018-7-12 13:00:00'
⑤、删除N天前的日志
PURGE MASTER LOGS BEFOREDATE_SUB( NOW( ), INTERVAL N DAY)如下面的语句可以清除 7 天前的binlog,
PURGE MASTER LOGS BEFOREDATE_SUB( NOW( ), INTERVAL 7 DAY)
注意:BEFORE变量的date自变量可以为'YYYY-MM-DDhh:mm:ss'格式。MASTER和BINARY是同义词。
2)自动删除日志
①、第一种方式:设置日志保存时间
修改MySql的配置文件,设置以下属性:expire_logs_days=10。这个值根据实际情况来定。当然对于生产环境修改配置文件需要重启,这个代价可能会很大,还可以通过这个命令来修改生效set global expire_logs_days = 10
②、第二种方式:设置定时任务
0 3 * * * `mysql -uroot -e 'PURGE BINARY LOGS BEFOREDATE_SUB( NOW( ), INTERVAL 7 DAY)'`
上面的命令是每天凌晨3点删除7天前的binlog:
之前有做过一个 binlog 压缩能节约多少空间的测试,效果上看还是比较理想的,可以节约一半以上的空间。但是这个又引出了一个新的问题,那就是这个功能对性能有多大影响呢?于是我又在测试环境试了一下,测试环境的物理配置如下。
根据之前的经验这套测试环境在 120 个表 + 240 个并发的情况,可以取得一个性能上的极大值;所以在这里就直接使用这个作为测试压力。
8.0.19 场景
第一步:安装。
dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz install
第二步:创建测试用户。
create user sysbench@'%' identified by 'sysbench'create database tempdbgrant all on tempdb.* to sysbench@'%'
第三步:填充数据并进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select prepare
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run
性能表现。
资源消耗情况。
8.0.20 + binlog 压缩
第一步:安装。
dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz install
第二步:创建测试用户。
create user sysbench@'%' identified by 'sysbench'create database tempdbgrant all on tempdb.* to sysbench@'%'
-- dbm-agent 默认会开启 binlog 压缩show global variables like 'binlog_transaction_compression%'+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | ON || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.00 sec)
第三步:填充数据并进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select prepare
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run
性能表现。
资源消耗情况。
8.0.20 + binlog 不压缩
第一步: 关闭 binlog 压缩功能。
set @@global.binlog_transaction_compression='OFF'
show global variables like 'binlog_transaction_compression%'+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | OFF || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.01 sec)
第二步:进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run
性能表现。
资源消耗情况。
结论
开启 binlog 压缩会对性能有影响,大概会让性能下降 1%,cpu 多消耗 1%。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)