错误代码查看工具,MySQL下perror工具查看System

一.  perror 错误代码查看工具

           在mysql
的选择进度中,只怕会现出精彩纷呈的error。这几个error有个别是出于操作系统引起的,比方文件大概目录不真实等等,使用perror的作用正是表明那一个错误代码的事无巨细含义。 
perror 使用方法如下:

*       997755.com澳门葡京 1
*

    举例:钦点错误号30和60独家是指什么错误
      997755.com澳门葡京 2
    在MYSQL系统出现故障或不当后,一般顾客都会去看错误日志,而不当日志里一般都会意识这么的不当编号。那时我们就能够运用这么些命令分析到底是哪儿出难题了。

 

glibc_error reporting,glibc_error

  相当多GNU
CCurry的函数都会侦测并告知错误条件。我们的程序须求检查测试那个错误条件。比如:大家开垦三个输入文件时需求判断该文件是还是不是正确的展开。若无科学张开,大家要求打字与印刷错误可能利用其余科学的方法。为了采纳这种错误报告机制,大家必要包罗头文件errno.h

   status系列

二 总结

       在前头几章中讲到了常用的多少个工具,其实还应该有像replace
(sql文本字符替换工具),那几个以往用的时候在翻看表达。
mysqlimport(数据导入工具)后续会在讲到。mysqlhotcopy(MyISAM表热备份工具)这些只针对MyISAM存款和储蓄引擎的表,就不在表达。最终熟练应用这几个工具,将会拉动相当的大方便。

 在MySQL数据库的掩护进度中,大家有时候会在MySQL的错误日志文件中看出局地有关Operating
system
error的错误音讯,比方在MySQL的不当日志里面,偶尔候会看出有关

质量评定错误:

  非常多库函数都会回去八个出奇的值来突显函数运行出错。常见的奇特值有:-1、空指针、EOF常量。可是那些再次来到值只好告诉您有错误产生,但不会告知你错误是怎么。借令你想领悟不当是怎样,就得靠错误代码,错误代码存款和储蓄在变量errno中(在errno.h中有扬言)

  errno变量包蕴了系统错误代码,其项目是volatile。该项目意味着其得以猛然被异步线程改造,编写翻译器从不要是其值。如果你在写实信号管理程序应当保留改变量的值并还原其值。

  errno的早先值为0,碰到错误时,errno绝无或许为0。但从没错误的时候,errno也不自然为0(库函数在功成名就运维时并不会修改errno的值)。所以,不要依靠errno的值来判断错误是或不是产生。精确的做法是为每三个函数做好文书档案,标明出错误代码的值对应的谬误类型。那样调用失败时,你可以通过检查errno获取错误代码,然后查询函数文书档案获取错误详细情况。借让你想获取某一库函数的错误代码,最佳再度在此之前设置errno为0(只怕你还想先保存以下errno的值,然后便于复苏该值)。

  每三个错误代码皆有多个以E起首紧跟大写字母或数字的标识名,实际为定义在errno.h中的宏。当然不是怀有的宏都定义在一个errno.h中(详细的能够团结翻一翻头文件,注意不止只有三个errno.h,多少个errno.h共同定义了全套的宏)

  错误代码的值一般为正数况且都分歧,但也是有贰个分裂:EWO福睿斯LDBLOCK和EAGAIN的错误代码是一样的。除了EWOLANDLDBLOCK和EAGAIN,你能够行使switch语句来判别错误代码。但您不该借助于此,你独一能够重视的就是文书档案。

  除了GNU/Hurd系统,大概具备的系统调用被盛传二个不行指针时都会回来EFAULT。所以啊,glibc的函数库表达文书档案中频仍会简单对EFAULT的演说。

  大许多的错误代码宏名都鲜明的好懂,假使实际不知其意能够查看手册恐怕

~# man errno

那边大致提多少个宏:

Macro: int EDOM
    域错误,可以理解为定义域错误。主要用在数学函数中。如果数学函数的一个参数值不在函数定义域中,则会将errno设置为EDOM

Macro: int ERANGE
    范围错误,与上面的EDOM恰好相反。EDOM是定义域的话,ERANGER就是值域了。也多用于数学函数中。如果数学函数返回值超过了约定的返回,则会将errno设置为ERANGE

Macro: int EAGAIN
    资源暂时不可获得。这种错误可能是随机的,你再次运行的时候便好了。。。EWOULDBLOCK是EAGAIN的一个别名。

 

错误代码查看工具,MySQL下perror工具查看System。  Mysql提供了一密密麻麻命令来获取数据库的运营境况,个中最常用的首要有show
status;show innodb status;show processlist; show mutex
status。通过那些命令我们得以明白到数据库和储存引擎io,内存,锁等详细音讯。

 

错误音信:

  大家理解错误代码,但总以为查文书档案不方便人民群众。幸而库文件给大家提供了不当新闻告知函数。那一个函数能够告诉一个独具表明性的荒唐新闻。部分音信告知函数我们可以团结定义务消防队息格式。

  函数strerror和perror为每多少个错误代码都提供了二个正式的失实消息。而变量program_invocation_short_name则足以低价获取程序的名字,告诉我们哪个程序出错。

多少个函数原型:

#include <string.h>
char * strerror(int errnum);
char *strerror_r(int errnum, char *buf, size_t n);

说明:  strerror和strerror_r多少个函数大概。区别在于安全性,官方文书档案对strerror的注释是MT-Unsafe
race:strerror,而strerror_r则为MT-Safe。strerror重返三个静态申请的字符串缓冲区,该缓冲区被全部线程分享。而strerror_r再次来到的是叁个个体别本,并不被别的线程分享。别的那八个函数皆有希望产生内部存款和储蓄器溢出(静态申请的缓冲区)。固然strerror_r能够钦命字符串长度,但那长度是char
*buf的。那函数有七个重临值,贰个选拔reurn重回,还可能有多少个是char
*buf。return重返的还是是叁个静态缓冲区。

 

#include<stdio.h>
void perror(const char *message);

表明:  perror将error
message打字与印刷到正规错误输出中。如若您传进的参数是三个空指针,perror会依照errno打字与印刷错误新闻。要是char
*message非空,perror会将message当作错误音信的前缀输出。perror得立刻调用,不然errno的值大概发生变化。

 

char *program_invocation_name; //等同于argv[0]
char *program_invocation_short_name //不包含目录名。

表达:  那四个变量的伊始化学工业作由glibc库在还未调用main函数此前施行。所以在非GNU库中,这四个变量不起功能,在骨子里代码中大家须求定义_GNU_SOURCE宏,告诉编写翻译器使用GNU库。

  以下四个函数在方方面面GNU project中采纳十二分常见。

void error(int status, int errnum, const char *format, ...);
void error_at_line(int status, int errnum, const char *fname, unsigned int lineno, const char *format, ...);

表达:  这四个函数的回到和status有关,倘使status是0,则正常格式化打字与印刷错误音信。全局变量error_message_count也会做自增操作。错误音信的格式如下:program_name:
format_string:
error_messager_for_errno\n。固然status非零,那七个函数将调用exit
status,即以状态status退出(不会回到)。关于program_name:全局变量error_print_progname指向的函数决定了program_name的值。error_at_line函数有一点点非常:多了fname,lineno三个参数。错误新闻格式如下:program_name:fname:lineno format_string:
error_mesage_for_errno\n。固然全局变量error_one_per_line被安装为非零值,每一行只会打字与印刷八个不当音讯。

  除了上述的错误音信函数,我们还应该有以下多少个:那多少个函数主要用在BSD系统中,定义在头文件err.h中,在gnu系统中不推荐使用。

void warn(const char *format, ...)
void vwarn(const char *format, va_list ap)
void warnx(const char *format, ...)
void vwarnx(const char *format, va_list ap)
void err(int status, const char *format, ...)
void verr(int status, const char *format, va_list ap)
void errx(int status, const char *format, ...)
void verrx(int status, const char *format, va_list ap)

各位看官自行查看手册吧。just be a man!!!

reporting,glibc_error 比相当多GNU
CCurry的函数都会侦测并告诉错误条件。我们的顺序要求检查测验那个错误条件。例如:大家开荒贰个输入文…

  参谋资料:

InnoDB:
Operating system error number 0.

  监察和控制工具――Mysqlreport

InnoDB:
Check that your OS and file system support files of this size.

  上边列出的各样status命令,能够有助于地实时查看。
若要求长期监察和控制,则须求工具对这么些消息进行规整汇总。近来普及的mysql监察和控制有mysqlreport、mysqlsla、innotop,还可能有企行业内部部支出的Mysql-mon。在那之中mysqlreport和mysql-mon属于状态总括类型。

InnoDB:
Check also that the disk is not full or a disk quota exceeded.

  数据来源于:

 

  [mysql]show global status

 

  [mysql]Show Global Variables

InnoDB:
Operating system error number 5.

  [mysql]Show Full Processlist

…………………………………….

  [系统] vmstat/iostat/mpstat

 

  由于上述参数复杂,因而监察和控制工具抽出重要的音信,以方便查看的方式展示,并记录都在日记中。

 那么那几个System
Error
Code在Linux下各自代表怎么着看头吧?其实假使遭受错误日志里有这么些对应的代码,使用MySQL自带的吩咐工具perror查看一下有血有肉音信就可以。非常轻易方便。

  Mysqlreport是一款扶助周期生成报表的工具。

 

  从mysqlreport报表中可见拿走的音信有分为一下几类:

[root@DB-Server
~]# perror 2;

  1、总体数量:包蕴读写总央求、接收/发送总量据量、慢查询次数

OS
error code  
2:  No
such file or directory

  2、DMS(数据操作描述):种种数据操作布满(select、update等)、查询和排序次数布满

[root@DB-Server
~]# perror 3;

  3、Cache:富含cache命中率、cache操作次数及比例(查询命中率、插入次数、修改次数的比例)

OS
error code  
3:  No
such process

  4、表: 满含表锁次数、张开表文件个数、一时表类型遍布、最都林接数等

[root@DB-Server
~]# perror 4;

  5、InnoDB相关:富含innodb
数据内容读写次数、数据页面创立/读写次数、数据行操作次数(增加和删除改查语句遍及)

OS
error code  
4: 
Interrupted system call

  参照他事他说加以考察资料:

[root@DB-Server
~]# perror 5;

  

OS
error code  
5: 
Input/output error

  

[root@DB-Server
~]#

  监察和控制工具――Mysqlsla

 

  mysqlreport能够支持大家驾驭MySQL的健康景况以及MySQL大部份时间在拍卖什么品种的Query,但大家在查证慢查询时,想清楚MySQL
实际上到底是把 CPU 运算时间花在什么样 Query
上?那些标题必需从MySQL的Log技术够。

倘让你要查看贰个限制的Operating
system error,能够应用下边发号施令

  Mysqlsla的数量来源为mysql提供的三类log:Binary Log、General
Log和Slow Log。

 

  对于慢sql总结消息, 满含 平均试行时间, 等待锁时间, 结果行的总的数量,
扫描的行总量。提供结果格式如下:

[root@DB-Server
~]# perror `seq 0 10`

  项目 说明

OS
error code  
0: 
Success

  Count sql的奉行次数及占总的slow log数量的比例

OS
error code  
1: 
Operation not permitted

  Time 实践时间, 满含总时间, 平均时间, 最小, 最大时间,
时间占到总慢sql时间的比重

OS
error code  
2:  No
such file or directory

  95% of Time 去除最快和最慢的sql, 覆盖率占95%的sql的施行时间.

OS
error code  
3:  No
such process

  Lock Time 等待锁的时刻

OS
error code  
4: 
Interrupted system call

  95% of Lock 95%的慢sql等待锁时间

OS
error code  
5: 
Input/output error

  Rows sent 结果行计算数据, 富含平均, 最小, 最大数据

OS
error code  
6:  No
such device or address

  Rows examined 扫描的行数量

OS
error code  
7: 
Argument list too long

  Database 属于哪个数据库

OS
error code  
8: 
Exec format error

  Users 哪个客户,IP, 占到全体客户实施的sql百分比

OS
error code  
9:  Bad
file descriptor

  Query abstract 抽象后的sql语句

OS
error code 
10:  No
child processes

  Query sample sql语句

[root@DB-Server
~]#

  参谋资料:

 

  监察和控制工具――innotop

 
借使是集群,那么可以shell> perror –ndb errorcode查看,
上边表格是关于Linux平台下通用的System Error
Code列表,如下所示,大可不必硬性记住。碰着查看就可以。

  innotop是一个针对innodb引擎的督察工具。

 

  与上诉的多少个工具差别,那是贰个类似于top的工具,可以实时显示innodb的种种参数变化。

 

  更威猛的是,可以在实行进度中能够查阅各类线程的试行情状、查看死锁消息;

Number

Macro

Description

1

EPERM

Operation not permitted

2

ENOENT

No such file or directory

3

ESRCH

No such process

4

EINTR

Interrupted system call

5

EIO

I/O error

6

ENXIO

No such device or address

7

E2BIG

Arg list too long

8

ENOEXEC

Exec format error

9

EBADF

Bad file number

10

ECHILD

No child processes

11

EAGAIN

Try again

12

ENOMEM

Out of memory

13

EACCES

Permission denied

14

EFAULT

Bad address

15

ENOTBLK

Block device required

16

EBUSY

Device or resource busy

17

EEXIST

File exists

18

EXDEV

Cross-device link

19

ENODEV

No such device

20

ENOTDIR

Not a directory

21

EISDIR

Is a directory

22

EINVAL

Invalid argument

23

ENFILE

File table overflow

24

EMFILE

Too many open files

25

ENOTTY

Inappropriate ioctl for device

26

ETXTBSY

Text file busy

27

EFBIG

File too large

28

ENOSPC

No space left on device

29

ESPIPE

Illegal seek

30

EROFS

Read-only file system

31

EMLINK

Too many links

  能够通过输入命令行参数,采用分裂的形式,查看线程内部消息

 

  参照他事他说加以考察资料:

 

  

一经是Windows平台,那么也得以应用下边发号施令查看具体的System
Error Code消息,别的,Windows平台下的System Error
Code也远比Linux平台下要多,碰着了这几个System Error
Code,使用命令查看就能够。

  监察和控制工具――Mysql-mon

 

  Mysql-mon是宏观开拓的,内部接纳的监察工具。选取C语言开荒,对数据库负载差相当的少为0。可用于

perror.exe
2

  数据库系统状态监察和控制\分源连接数监察和控制\数据量、索引量监察和控制\字段范围监察和控制数据库同步监督

 

  参谋资料:

 

  表压缩工具――myisampack

perror
`perl -e “print join ‘ ‘,1..100″`

  Myisampack是一个表压缩工具,能够利用异常高的压缩率来对My伊萨m存款和储蓄引擎的表打开削减,使得压缩后的表占用比压缩前小得多的磁盘空间。但是压缩后的表也将称为多少个只读表,不能够开展DML操作。

 

  参照他事他说加以考察资料:

 

  管理工科具――mysqlamdin

 

  Mysqladmin是一个实施处理操作的顾客端程序。能够用来检查服务器的陈设和如今的情状,创建并剔除数据库等。

 

  仿照效法资料:

参谋资料

  日志管理工科具――mysqlbinlog

 

  由于服务器生成的日记文件以二进制格式保存,所以固然要想检查这个文件的文本格式,就能够用到mysqlbinlog日志管理工科具。

  参考资料:

  表维护理工科人具――mysqlcheck

  Mysqlcheck顾客端工具得以检查和修复myisam表,还足以优化和分析表。实际上,它继续了mysql工具中check、repair、analyze、optimize的功能。

  参谋资料:

  数据导出工具――mysqldump

  Mysqldump客商端工具用来备份数据库或在差异数据库之间开展多少迁移。备份内容包涵创制表或装载表的sql语句。

  仿效资料:

  数据导入工具――mysqlimport

  Mysqlimport是顾客端导入工具,用于导入mysqldump加-T选项后导出的公文文件。

997755.com澳门葡京 ,  参照他事他说加以考察资料:

  表热备份工具――mysqlhotcopy

  Mysqlhotcopy是多少个perl脚本,它使用lock tables、flush
tables、cp或scp来相当慢备份数据库。只限于在linux/unix下热备份myisam数据表。

  参照他事他说加以考察资料:

  数据库对象查看工具――mysqlshow

  Mysqlshow是客商端对象查看工具,用来相当的慢地查找存在什么样数据库、数据库中的表、表中的列或索引。

  参谋资料:

  错误代码查看工具――perror

  在mysql使用进度中,或然会现出五颜六色的error,这几个error有些是出于操作系统引起的,某些是由于存款和储蓄引擎使用不当引起的。那些error皆有多个整型的错误代码。Perror的机能是表达那个错误代码的详细含义。

  参谋资料:

  文本替换工具――replace

  Replace是mysql自带的三个对文本中的字符串进行调换的工具,类似于linux下的sed,可是他的应用更加的简约利落。

Mysql提供了一多种命令来博取数据库的运作状态,个中最常用的严重性有show
status;show innodb status;show processlist; show mutex
status。通过这…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website