### 错误日志是非常有用的东西,在上一篇 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错误日志相关推荐

  1. php 怎么查看日志,怎么看php错误日志

    看php错误日志的方法:开启PHP错误日志级别,代码为[ini_set("display_errors", On);ini_set("error_reporting&qu ...

  2. mysql注入报错函数_MySQL注入常用函数

    注入的分类 仁者见仁,智者见智. 基于从服务器接收到的响应 ▲基于错误的 SQL 注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL 盲注 •基于布尔 SQL 盲注 •基于时间的 SQL 盲注 •基于报错 ...

  3. jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...

    本文主要向大家介绍了MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory  ,通过具体的内容向大家展现,希望对大家学习M ...

  4. 线上MYSQL同步报错故障处理总结 实现同步不一致进行邮件报警

    线上MYSQL同步报错故障处理总结 公司使用腾讯云数据库,今天在从库上面查询相关数据时候,显示没有任何记录,登录后 show slave status\G 查看到状态中报1032错误,这里把相关主从同 ...

  5. mysql upgrade 报错_mysql_upgrade

    关于 mysql_upgrade的搜索结果 问题 WDCP面板升级组件脚本及方法 坛子里面安装WDCP面板的帖有很多,但WDCP的组件也是老了一些,今天哥就带大家飞. WDCP的Apache原则上是不 ...

  6. mysql 错误日志 占用硬盘_MySQL慢日志占满磁盘空间导致业务主库宕机解决

    在MySQL的日常维护中,我们总会遇到这样或那样的问题,对于那些经常发生且有处理经验的事故,不论是新手还是老司机都能在故障规定的容错时间内解决.而对于那些不常见.比较棘手的问题,新手上路可能就显得举足 ...

  7. mysql登录报错error1045,mysql创建登录报错ERROR1045(28000)

    .如下图(第四个): 而本人创建的用户为: Mysql> grant  all  on  itcase.*  to  'test'@'%'  identified  by  '123456'; ...

  8. 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 ...

  9. 微信表情符号 mysql_Emoji表情符号入MySQL数据库报错的解决方案

    Emoji表情符号入MySQL数据库报错的解决方案 发布时间:2020-08-15 08:21:52 来源:ITPUB博客 阅读:136 作者:bestpaydata auther:Jane.Hoo ...

最新文章

  1. ios6:新特征介绍
  2. OpenStack上传镜像报错__init__() got an unexpected keyword argument 'token'
  3. 【MongoDB】嵌套数组查询方案
  4. Interview:算法岗位面试—11.19早上上海某银行(总行,四大行之一)信息技术岗面试记录
  5. 【物联网】OpenWrt编译出现Unable to find remote helper for 'https'问题
  6. acrobat 下拉列表 逻辑_记一次 无限列表 滚动优化
  7. 计算机与交通工程论文,交通工程论文.doc
  8. 微软codepush搭建服务器,通过 CodePush API 参考对本机 SDK 作出响应 - Visual Studio App Center | Microsoft Docs...
  9. Linux screen命令与后台执行任何程序
  10. 46 - 算法 - Leetcode 168 -26进制 --减一
  11. 计算机实验报告表九,北理大学计算机实验基础实验九实验报告表-20210617084645.pdf-原创力文档...
  12. Python在SQL Server管理中的重要性
  13. THotKey控件 delphi
  14. (C/C++学习笔记)附页: C/C++变量的存储类型
  15. 计算机控制的液压提升,LSD液压提升系统(2008).doc
  16. 10个 截屏工具 FastStone Capture9.3注册码
  17. 文字识别总结(OCR)
  18. Python地理数据处理 一 :地理空间数据入门
  19. 泰坦尼克号数据_泰坦尼克号数据分析案例实战
  20. QEMU 安装与使用

热门文章

  1. oracle怎样统计多列是否重复,Oracle FORM Bulider 校验多行多列数据重复的一种方法...
  2. JUST技术:分布式时序相似查询初探
  3. PMAC应用二-基本配置
  4. 机器学习导论:什么是机器学习?
  5. mysql数据库中插入表信息_mysql数据库中插入表
  6. java实验三_JAVA实验三及总结
  7. border-box宽度计算方式
  8. Spark+Flink+Iceberg打造湖仓一体架构实践探索
  9. 揭秘红海云逆势增长的创新密码
  10. TCP Connect 函数超时的问题