mysql的报错日志哪里看_mysql错误日志
### 错误日志是非常有用的东西,在上一篇 mysql字符集 中,因为看了网上很多博客,修改字符集的时候,在服务端` [mysqld]`下添加的变量内容为(博客里写的是这个变量,有很多博客都这样写,可能Mysql版本不一样吧):
```
default_character_set_server=utf8
```
### 结果在重启 Mysql的时候报错了,通过报错的信息无法判断到底哪里出了问题,够纠结的。。。
关键时刻只能靠错误日志了,那么错误日志在哪里呢?
### 查看错误日志文件位置(使用 SQL 语句),我这里显示的是一个相对路径,是在 /usr/local/mysql/data/ 目录下的,`terminal` 是主机名,默认以 `主机名.log` 的形式命名
```
mysql> show global variables like 'log_error';
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| log_error | ./terminal.err |
+---------------+----------------+
1 row in set (0.00 sec)
```
通过上面可以看到我的 Mysql错误日志在 /usr/local/mysql/data/ 目录下面,名字叫 `terminal.log`,来看看这家伙吧(这里我首先切换到了 root 用户,因为需要权限进入到 /usr/local/data/ 目录下):
```
[root@terminal data]# cat terminal.err
2019-03-06T08:41:10.038619Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-06T08:41:10.038695Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2019-03-06T08:41:10.038715Z 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.7.25) starting as process 9400 ...
2019-03-06T08:41:10.043950Z 0 [Note] InnoDB: PUNCH HOLE support available
2019-03-06T08:41:10.043973Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-03-06T08:41:10.043976Z 0 [Note] InnoDB: Uses event mutexes
2019-03-06T08:41:10.043978Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2019-03-06T08:41:10.043980Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-03-06T08:41:10.043983Z 0 [Note] InnoDB: Using Linux native AIO
2019-03-06T08:41:10.044244Z 0 [Note] InnoDB: Number of pools: 1
2019-03-06T08:41:10.044368Z 0 [Note] InnoDB: Using CPU crc32 instructions
2019-03-06T08:41:10.045791Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-03-06T08:41:10.053211Z 0 [Note] InnoDB: Completed initialization of buffer pool
2019-03-06T08:41:10.055615Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-03-06T08:41:10.068979Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2019-03-06T08:41:10.077351Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2019-03-06T08:41:10.077449Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2019-03-06T08:41:10.194546Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2019-03-06T08:41:10.196823Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2019-03-06T08:41:10.196868Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2019-03-06T08:41:10.198591Z 0 [Note] InnoDB: Waiting for purge to start
2019-03-06T08:41:10.249588Z 0 [Note] InnoDB: 5.7.25 started; log sequence number 2524810
2019-03-06T08:41:10.250302Z 0 [Note] Plugin 'FEDERATED' is disabled.
2019-03-06T08:41:10.265156Z 0 [ERROR] unknown variable 'default_character_set_server=utf8'
2019-03-06T08:41:10.265192Z 0 [ERROR] Aborting
```
### 提示信息有很多类:Note、Warning、ERROR
我们需要看的是 ERROR,也就是最后两行,准确说我们要的信息在倒数第二行:
```
2019-03-06T08:41:10.265156Z 0 [ERROR] unknown variable 'default_character_set_server=utf8'
```
很明显,说 `default_character_set_server` 这个变量 Mysql不知道是什么玩意,回到上一篇的上一篇 mysql配置,查看可以在配置文件中定义的变量,使用 grep 搜索一个关键字吧:
```
[root@terminal data]# mysqld --verbose --help | grep character
2019-03-06T08:54:36.277849Z 0 [ERROR] unknown variable 'default_character_set_server=utf8'
--character-set-client-handshake
Don't ignore client side character set value sent during
(Defaults to on; use --skip-character-set-client-handshake to disable.)
--character-set-filesystem=name
Set the filesystem character set.
-C, --character-set-server=name
Set the default character set.
--character-sets-dir=name
Directory where character sets are
InnoDB Fulltext search maximum token size in characters
InnoDB Fulltext search minimum token size in characters
This characterizes the number of hits a hot block has to
characters
characteristics (isolation level, read only/read write,
character-set-client-handshake TRUE
character-set-filesystem binary
character-set-server latin1
character-sets-dir /usr/local/mysql/share/charsets/
2019-03-06T08:54:36.284286Z 0 [ERROR] Aborting
session-track-system-variables time_zone,autocommit,character_set_client,character_set_results,character_set_connection
```
### 嗯,确实没有 `default_character_set_server` 这玩意,找到了 `character-set-server`,它的值和我们在 mysql查询的时候也一样,我在网上有看了一些博客,最终确认了就是这个变量,后面我修改了 `/etc/my.cnf`,Mysql就可以启动了,从此我爱上了 错误日志,好东西!!!
### 错误日志是有级别的,就像上面看到的 Note、Warning、ERROR 什么的,有时候我们只需要看 ERROR ,其他的信息占空间,不要查阅;了解一下错误日志级别?(错误日志级由 log\_warnings 变量决定)
```
mysql> show global variables like 'log_warnings';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings | 2 |
+---------------+-------+
1 row in set (0.01 sec)
```
```
log_warnings 为0, 表示不记录告警信息。
log_warnings 为1, 表示告警信息写入错误日志。
log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。
```
### 我这里是 2,什么都显示,可以修改 log_warnings 的值来调整错误日志记录的内容
当然也不一定需要修改这个变量,有时候需要查看比较详细的错误信息,那么可以通过 gawk 来筛选出我们需要的错误信息,就像这样:
```
[root@terminal data]# cat terminal.err | gawk '$3 == "[ERROR]" {print $0}'
2019-03-06T08:41:10.265156Z 0 [ERROR] unknown variable 'default_character_set_server=utf8'
2019-03-06T08:41:10.265192Z 0 [ERROR] Aborting
2019-03-06T09:05:18.048303Z 0 [ERROR] SSL error: Unable to get private key from 'server-key.pem'
```
可以看到还有一个 server-key.pem 文件问题,意思大概是无法获得这个文件的内容,看看这个文件吧:
```
[root@terminal data]# ll server-key.pem
-rw------- 1 root root 1679 3月 5 16:27 server-key.pem
```
好像除了 root 用户,其他人都没有查看权限啊,给加一个查看权限吧:
```
[root@terminal data]# chmod +r server-key.pem
[root@terminal data]# ll server-key.pem
-rw-r--r-- 1 root root 1679 3月 5 16:27 server-key.pem
```
加完权限之后可以把错误日志文件先清空一下(方便对比),然后在重启 Mysql服务,发现已经没那错误了,完美。
mysql的报错日志哪里看_mysql错误日志相关推荐
- php 怎么查看日志,怎么看php错误日志
看php错误日志的方法:开启PHP错误日志级别,代码为[ini_set("display_errors", On);ini_set("error_reporting&qu ...
- mysql注入报错函数_MySQL注入常用函数
注入的分类 仁者见仁,智者见智. 基于从服务器接收到的响应 ▲基于错误的 SQL 注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL 盲注 •基于布尔 SQL 盲注 •基于时间的 SQL 盲注 •基于报错 ...
- jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...
本文主要向大家介绍了MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory ,通过具体的内容向大家展现,希望对大家学习M ...
- 线上MYSQL同步报错故障处理总结 实现同步不一致进行邮件报警
线上MYSQL同步报错故障处理总结 公司使用腾讯云数据库,今天在从库上面查询相关数据时候,显示没有任何记录,登录后 show slave status\G 查看到状态中报1032错误,这里把相关主从同 ...
- mysql upgrade 报错_mysql_upgrade
关于 mysql_upgrade的搜索结果 问题 WDCP面板升级组件脚本及方法 坛子里面安装WDCP面板的帖有很多,但WDCP的组件也是老了一些,今天哥就带大家飞. WDCP的Apache原则上是不 ...
- mysql 错误日志 占用硬盘_MySQL慢日志占满磁盘空间导致业务主库宕机解决
在MySQL的日常维护中,我们总会遇到这样或那样的问题,对于那些经常发生且有处理经验的事故,不论是新手还是老司机都能在故障规定的容错时间内解决.而对于那些不常见.比较棘手的问题,新手上路可能就显得举足 ...
- mysql登录报错error1045,mysql创建登录报错ERROR1045(28000)
.如下图(第四个): 而本人创建的用户为: Mysql> grant all on itcase.* to 'test'@'%' identified by '123456'; ...
- Linux下MySQL起动报错The server quit without updating PID file
MySQL起动报错The server quit without updating PID file (/usr/local/mysql/data/ 查看日志: 131206 23:10:21 mys ...
- 微信表情符号 mysql_Emoji表情符号入MySQL数据库报错的解决方案
Emoji表情符号入MySQL数据库报错的解决方案 发布时间:2020-08-15 08:21:52 来源:ITPUB博客 阅读:136 作者:bestpaydata auther:Jane.Hoo ...
最新文章
- ios6:新特征介绍
- OpenStack上传镜像报错__init__() got an unexpected keyword argument 'token'
- 【MongoDB】嵌套数组查询方案
- Interview:算法岗位面试—11.19早上上海某银行(总行,四大行之一)信息技术岗面试记录
- 【物联网】OpenWrt编译出现Unable to find remote helper for 'https'问题
- acrobat 下拉列表 逻辑_记一次 无限列表 滚动优化
- 计算机与交通工程论文,交通工程论文.doc
- 微软codepush搭建服务器,通过 CodePush API 参考对本机 SDK 作出响应 - Visual Studio App Center | Microsoft Docs...
- Linux screen命令与后台执行任何程序
- 46 - 算法 - Leetcode 168 -26进制 --减一
- 计算机实验报告表九,北理大学计算机实验基础实验九实验报告表-20210617084645.pdf-原创力文档...
- Python在SQL Server管理中的重要性
- THotKey控件 delphi
- (C/C++学习笔记)附页: C/C++变量的存储类型
- 计算机控制的液压提升,LSD液压提升系统(2008).doc
- 10个 截屏工具 FastStone Capture9.3注册码
- 文字识别总结(OCR)
- Python地理数据处理 一 :地理空间数据入门
- 泰坦尼克号数据_泰坦尼克号数据分析案例实战
- QEMU 安装与使用