A. mysql数据库事件调用有错误日志记录吗
一.错误日志
错误日志在Mysql数据库中很重要,它记录着mysqld启动和停止,以及服务器在运行过程版中发生权的任何错误的相关信息。
1.配置信息
--log-error=[file-name]用来指定错误日志存放的位置。
如果没有指定[file-name],默认hostname.err做为文件名,默认存放在DATADIR目录中。
也可以将log-error配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log-error.例如:
[mysql@test2]$ vi /etc/my.cnf
# The MySQL server
[mysqld]
....
B. mysql二进制日志过滤器怎么用
使用 binlog-do-db=db_name。使用这个选项后,主服务器会判断当前的数据库(即USE选定的数据库)是否是_name,如果是,则会将更新记录到二进制日志中。在使用之后,其它所有没有明显指定的数据库 都会被忽略。如果使用该选项,你应确保只对当前的数据库进行更新。
在我服务器上有两个数据库,一个db_factory,另一个是db_user。在没有使用这个选项之前,对两个数据库的更新操作都是立即会复制到从库上的,但设置
www.2cto.com
[sql]
binlog-do-db=db_factory
之后,对db_user的改动,都不会被从库所复制。所以如果不是特别有需求,最好不要设置这个选项。当然如果是一个数据库经常更新,其它的都是一样的本地数据库,可以不用于二进制日志的后续操作的情况下,作为一种优化手段,也是可以的。
一个需要特别注意的地方是,如果设置binlog-do-db=db_factory。但后续使用如下语句:
[sql]
use db_user
insert into db_factory.employ ...........
此时,更新是不会被二进制日志所接收的。
二,binlog-ignore-db
表示忽略某个特定的数据库,而对其它数据库进行复制的选项。其实上面的选项是表示“忽略其他数据库,只记录我进入日志”,而这个选项可以表“忽略我,将其它数据库记录日志”,对这外选项的使用,可以如下所示:
www.2cto.com
[sql]
[mysqld]
binlog-ignore-db=db_factory
binlog-ignore-db=db_user
当然上面的binlog-do-db也可以使用多次记录多个表需要被写入二进制日志。
C. MySQL怎么清除日志
第一种方法:
mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除。
mysql> purge binary logs to 'binlog.000058'; (删内除mysql bin-log日志,删除binlog.000005之前的,不容包括binlog.000058)
第二种方法:
进入数据库,查看一下当前使用的binlog日志是哪个,除了这个以外的,其它都可以使用rm -rf 删除!
D. 如何清除mysql的mysql-bin日志
用命源令查看: 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天以前的日志
E. 如何查看mysql数据库操作记录日志
这是一个慢查询日志的展示工具,能够帮助 DBA 或者开发人员分析数据库的性能问题,版给出全面的数据摆脱直接查看权 slow-log。QAN(Query Analytics)
PMM 目前有 2 个版本,但是对于 QAN 来说其大致由三部分组成:
QAN-Agent(client):负责采集 slow-log 的数据并上报到服务端
QAN-API(server):负责存储采集的数据,并对外提供查询接口
QAN-APP:专门用来展示慢查询数据的 grafana 第三方插件
1. 数据流转
slow-log --> QAN-Agent --> QAN-API <--> QAN-APP(grafana)
2. pmm1 架构图
F. 如何删除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:
G. MySQL 5.1版本下如何动态抓取查询日志
其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上版如下代码:
log-slow-queries=/var/lib/mysql/slowquery.log
long_query_time=2
第一条是记录文件权名,第二条是耽误时间多久是算慢
H. mysql删除表中某些数据,但这个删除动作不记录到日志中的方法
把数据备份到另一张表
然后TRUNCATE TABLE
再把备份的数据插入回来 where条件过滤掉想删的数据
然后drop 备份表
I. 如何查看mysql运行,访问记录等日志
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
是否启用了日志
mysql>showvariableslike'log_%';
怎样知道当前的日志
mysql>showmasterstatus;
显示二进制日志数目
mysql>showmasterlogs;
看二进制日志文件用mysqlbinlog
shell>mysqlbinlogmail-bin.000001
或者
shell>mysqlbinlogmail-bin.000001|tail
在配置文件中指定log的输出位置.
Windows:Windows 的配置文件为 my.ini,一般在MySQL的安装目录下或者 c:Windows 下。
Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。
windows下
#在[mysqld]中输入
#log
log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
Linux下
#在[mysqld]中输入
#log
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries=/usr/local/mysql/log/slowquery.log
J. 如何安全的清除mysql的日志
第一种方法:
mysql> show binary logs; 查看mysql bin-log日志,除了这个以外的,其它都可以使用删回除。
mysql> purge binary logs to 'binlog.000058'; (删除mysql bin-log日志,删除binlog.000005之前的,不答包括binlog.000058)
第二种方法:
进入数据库,查看一下当前使用的binlog日志是哪个,除了这个以外的,其它都可以使用rm -rf 删除!