mysqldump备份报Binlogging on server not active的解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump备份报Binlogging on server not active的解决相关的知识,希望对你有一定的参考价值。

Redhat 6.5 X64   mysql 5.7执行备份:

[[email protected] 3306]# mysqldump -u root -p --master-data=2 --single-transaction -R --triggers -A > all.sql
Enter password:
mysqldump: Error: Binlogging on server not active

解决方案:

sudo vi /etc/my.cnf

在[mysqld]标签下添加:

log-bin=mysql-bin
server-id=1

保存退出后,重启服务:

 systemctl restart mysqld

搞定.注意如果有其它错误,仔细看看

/var/log/mysqld.log里面的错误信息以更快的找到问题.

参考以下内容.

1)首先,为什么要开启binlog日志和慢查询日志呢?

binlog日志会记录下数据库的所以增删改操作,当不小心删除、清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西

慢查询日志 slow_query_log,这个东西是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,然后就可以进行数据库或sql语句或程序上的优化,简单来说就是一个优化辅助工具

 

PS:binlog日志应该一直开着(因为你不知道数据库哪一天会崩掉,或者哪天会误删一点东西),慢查询日志平时可以不开,当觉得网站运行慢,需要优化的话,可以打开慢查询来做一个辅助

 

2)开启binlog日志的方法

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-bin=mysql-bin
server-id=1

PS:这上面的mysql-bin其实就是binlog日志文件的前缀来着,像上面设置的是mysql-bin(你可以改成mysql_bin或binlog或其他什么都可以),它就会在/var/lib/mysql/(默认位置)生成 mysql-bin.000001,mysql-bin.000002,mysql-bin.000003......等日志文件

 

3)开启慢查询日志

修改配置方法一(临时,重启mysqld后自动恢复):

set global log_slow_queries=ON;
set global slow_launch_time=10;

 

修改配置方法二(永久):

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-slow-queries=/var/log/mysqld-slow.loglong_query_time=2

第一个配置是日志文件位置,第二个配置是慢查询的时间配置(秒),执行时间超过这个时间的查询语句会被记录下来


以上是关于mysqldump备份报Binlogging on server not active的解决的主要内容,如果未能解决你的问题,请参考以下文章

MysqL5.7在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface ca

mysqldump备份报错

mysqldump直接将MySQL数据库压缩备份遇到报错

执行mysqldump备份数据时报错

解决mysqldump备份报错: Couldn't execute 'SHOW FIELDS FROM Unknown error 1356

mysql 5.5 mysqldump备份原理