一.  perror 错误代码查看工具

           在mysql
的接纳进程中,只怕会见世多姿多彩标error。那么些error某个是由于操作系统引起的,举个例子文件或许目录不设有等等,使用perror的功能正是分解那个错误代码的事无巨细含义。 
perror 使用方法如下:

*       图片 1
*

    举个例子:钦点错误号30和五拾伍个别是指什么错误
      图片 2
    在MYSQL系统出现故障或不当后,一般客户都会去看错误日志,而不当日志里一般都会发觉这么的一无所长编号。那时大家就能够运用这几个命令解析到底是哪儿出难点了。

OS
error code  
2:  No
such file or directory

检查测验错误:

  相当多库函数都会回来贰个特别的值来展现函数运维出错。常见的独特值有:-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共同定义了方方面面包车型的士宏)

  错误代码的值一般为正数而且都分化,但也会有一个差异:EWOEscortLDBLOCK和EAGAIN的错误代码是一模二样的。除了EWOKoleosLDBLOCK和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的一个别名。

 

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

二 总结

       在头里几章中讲到了常用的多少个工具,其实还也会有像replace
(sql文本字符替换工具),这一个将来用的时候在翻看表达。
mysqlimport(数据导入工具)后续会在讲到。mysqlhotcopy(MyISAM表热备份工具)这几个只针对MyISAM存款和储蓄引擎的表,就不在表明。最终熟稔运用这一个工具,将会带来异常的大平价。

OS
error code  
5: 
Input/output error

glibc_error reporting,glibc_error

  非常多GNU
CCurry的函数都会侦测并告知错误条件。大家的主次须求检验这一个错误条件。例如:我们开拓一个输入文件时索要看清该公文是或不是科学的张开。若无正确张开,我们必要打字与印刷错误大概利用别的科学的措施。为了利用这种错误报告机制,大家必要包涵头文件errno.h

  监察和控制工具――Mysqlsla

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

张冠李戴消息:

  大家清楚错误代码,但总以为查文书档案不方便人民群众。幸而库文件给我们提供了错误音信告知函数。这个函数能够告知叁个富有表明性的不当消息。部分音信告诉函数大家得以友善定义务消防队息格式。

  函数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的函数都会侦测并告知错误条件。我们的前后相继须要检验这么些不当条件。比方:我们张开贰个输入文…

  Mysqlshow是客商端对象查看工具,用来飞速地搜寻存在哪些数据库、数据库中的表、表中的列或索引。

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

  Time 执行时间, 包涵总时间, 平均时间, 最小, 最大时间,
时间占到总慢sql时间的比例

 

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

 

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

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

  Query sample sql语句

 

  mysqlreport能够扶持我们询问MySQL的健康境况以及MySQL大部份时间在处理什么类型的Query,但大家在侦察慢查询时,想知道MySQL
实际上到底是把 CPU 运算时间花在怎么 Query
上?这几个主题素材无法不从MySQL的Log才可以。

[root@DB-Server
~]#

  Count sql的推行次数及占总的slow log数量的百分比

OS
error code  
0: 
Success

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

OS
error code  
3:  No
such process

   status系列

perror.exe
2

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

 

  Mysqlsla的数目出自为mysql提供的三类log:Binary Log、General
Log和Slow Log。

OS
error code  
5: 
Input/output error

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

  管理工科具――mysqlamdin

OS
error code  
8: 
Exec format error

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

OS
error code  
6:  No
such device or address

  表维护工具――mysqlcheck

[root@DB-Server
~]#

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

 

  参谋资料:

 

  项目 说明

admin

相关文章

发表评论

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