重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
方法一: 修改配置文件
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的柳南网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
重启mysql生效
方法二:修改mysql变量
该方法在下次启动mysql后失效,也就是说重启mysql后expire_logs_days的值又还原为0了,
该方法的好处在于不用重启mysql就可以生效
永久生效:修改mysql的配置文件my.cnf,添加binlog过期时间的配置项: expire_logs_days=30 ,然后重启mysql,这个有个致命的缺点就是需要重启mysql。
临时生效:进入mysql,用以下命令设置全局的参数: set global expire_logs_days=30 ;
(上面的数字30是保留30天的意思。)
可以直接删除 binlog 文件,但是可以通过 mysql 提供的工具来删除更安全,因为 purge 会更新 mysql-bin.index 中的条目,而直接删除的话, mysql-bin.index 文件不会更新。 mysql-bin.index 的作用是加快查找 binlog 文件的速度。
命令查看 binlog 文件
删除举例:
用命令查看: show binary logs;
然后去从服务器上查看哪个二进制正在使用,
我们看到mysql-tb-bin.000005这个日志文件正在使用。
回到主服务器开始清理日志,但是不能清理mysql-tb-bin.000005这个日志文件,用命令清理:
purge binary logs to 'mysql-tb-bin.000005';
这个命令就是清理除mysql-tb-bin.000005以外的其他二进制日志;执行成功后,再查看二进制日志列表:show binary logs;
清理成功,但是这样手动清理危险很大,而且还比较复杂,有没有自动清理的方法呢?答案是有的,在my.ini里面加上这个配置:expire_logs_days=5 这个配置的意思就是,日志的过期天数,超过5天的日志,mysql会自动清理5天以前的日志,这样就不用再担心日志文件文件越来越大的问题了,执行命令的时候一定要慎重,确保万无一失再执行,有不正确的地方,望大家指正!
删除日志:
执行:/usr/local/mysql/bin/mysql -u root -p
输入密码登录后再执行:reset master;
再输入:quit 退出mysql命令模式。
彻底禁用MySQL日志:修改/etc/my.cnf 文件,
找到log-bin搜索=mysql-binbinlog_format=mixed再这两行前面加上#,
将其注释掉,再执行/etc/init.d/mysql restart即可。
或直接去目录/usr/local/mysql/var/删除日志文件即可正常使用!