查看mysql数据库日志
有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......
此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不知道 update 会持续多久。
那我们能知道 update 的进度么?
实验
我们先创建一个测试数据库:
那我们怎么准确的这个倍数呢?
一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数。
另一种方法就是在同样结构的较小的表上试验一下,获取倍数。
这样,我们就能准确估算一个大型 update 的进度了。
B. 怎么查看mysql 二进制日志
从概述中我可以看到my.ini配置信息的log-bin没有指定文件扩展名,这是因为即使你指定上扩展名它也不使用。当mysql创建二进制日志文件时,首先创建一个以“mysql_log_bin”为名称,以“.index”为后缀的文件;再创建一个以“mysql_log_bin”为名称,以“.000001”为后缀的文件。当mysql服务重新启动一次以“.000001”为后缀的文件会增加一个,并且后缀名加1递增;如果日志长度超过了max_binlog_size的上限(默认是1G)也会创建一个新的日志文件;使用flush logs(mysql命令符)或者执行mysqladmin –u –p flush-logs(windows命令提示符)也会创建一个新的日志文件。
既然写入的都是MySQL二进制数据,用记事本打开文件是看不到正常数据的,那怎么查看呢?
使用BIN目录下mysqlbinlog命令,如:
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000001
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000002
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000003
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000004
Bin>mysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL语句也可查看mysql创建的二进制的文件目录:
Mysql> show master logs; 查看当前二进制文件状态:
mysql> show master status;
C. 如何查看MySQL数据库的死锁日志
如何查看MySQL数据库的死锁日志
1. 使用终端或命令提示符登录到MySQL,输入命令:mysql -h xxxx.xxx.xxx -P 3306 -u username -p
解释:xxxx.xxx.xxx是数据库IP地址,username是数据库用户名,输入命令后,会让你输入username对应的密码,就可以登录了
4. 如何分析日志,定位死锁原因
看3里面的图,紫色划线部分
分析:
事务1,等待
RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`,这个位置的X锁
事务2,持有
RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`这个地方的S锁
事务2,等待这个地方的X锁
理论上这个事务2是可以提交的不会,死锁,但是这个事务日志只打印最后一部分死锁,信息,这里面隐含的条件是,事务1也持有
RECORD LOCKS space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`这个地方的S锁,这样,事务2不能加X锁,同时事务1也不能加X锁,产生死锁。
D. 如何查看mysql运行,访问记录等日志
1.首先确认你日志是否启用了
mysql>show variables like 'log_bin';
2.如果启用了,即ON
那日志文件就在mysql的安装目录的data目录下
3.怎样知道当前的日志
mysql> show master status; 4.看二进制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail
Windows 下用类似的
E. 怎样查看mysql是否开启日志功能
1、首先确认你日志是否启用了mysql>show variables like 'log_bin'。
2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。
3、怎样知道当前的日志mysql> show master status。
4、看二进制日志文件用mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail,Windows 下用类似的。
MySQL的日志操作:
1、首先,登陆mysql后,执行sql语句:show variables like 'log_bin'。
2、#错误日志log-errol开启方式:在my.ini的[mysqld]选项下:添加代码:log-error=E:log-error.txt。
记录内容:主要是记录启动、运行或停止mysqld时出现的致命性问题,都是系统级的错误记录。
F. navicat查看mysql的操作记录
mysql在执行sql的时候会在日志当中记录很多信息,当然包括执行的所有语句。下面以使用navicat for mysql为例,来展示一下如何打开/查看MySQL的SQL记录:
打开navicat for mysql,并连接到数据库,选择一个要操作的数据库。
点击左上角的【工具】,选择历史日志选项,或者直接【ctrl+H】。
G. 怎么查看mysql日志
MySQL的日志文件模块启动后才会有日志记录。
开启日志服务:
在MY.INI里,MYSQLD项下添加log-bin=mysql。
如果只对某个库进行日志文件记录,那么再添加binlog-do-db=test,这样就只记录test数据库的日志,而放弃其他的。
添加完后,重新启动MYSQL的服务,日志文件开始工作了.
查看是否启用了日志命令:mysql>show variables like 'log_bin';
查看当前的日志命令:mysql> show master status;
看二进制日志文件用mysqlbinlog命令:shell>mysqlbinlog mail-bin.000001
H. 怎么查看mysql数据库的日志文件
这个你可以看配置文件 启用了才有这样的记录默认是没有的
/etc/my.conf
log-bin = mysqlbin
一般放在/var/lib/mysql
比如上面的设置重启数据库会生成mysqlbin.000001文件
I. mysql启动日志在哪
mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
是否启用了日志
mysql>show variables like 'log_%';
怎样知道当前的日志
mysql> show master status;
显示二进制日志数目
mysql> show master logs;
看二进制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail
在配置文件中指定log的输出位置.
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:Windows 下。
linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。
在linux下:
Sql代码
#在[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"
开启慢查询
long_query_time =2 --是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --将查询返回较慢的语句进行记录
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下来没有使用索引的query
log=mylog.log --对所有执行语句进行记录
J. windowos环境下mysql数据库日志文件在哪
可通过以下语句查看日志存放路径:
show variables like 'general_log_file';结果:
其中,如图所示红框部分即为mysql日志文件的存放路径及文件名。