Mis*_*hko 12 mysqldump exit-code
我知道这exit code = 0意味着No error.
我有exit code = 2.这是什么意思 ?
我在哪里可以看到mysqldump退出代码的完整列表?
小智 36
取自MySQL 5.1.59中的client/mysqldump.c:
#define EX_USAGE 1
#define EX_MYSQLERR 2
#define EX_CONSCHECK 3
#define EX_EOM 4
#define EX_EOF 5 /* ferror for output file was got */
#define EX_ILLEGAL_TABLE 6
Run Code Online (Sandbox Code Playgroud)
浏览源代码,EX_MYSQLERR似乎主要用于来自服务器的错误,但万一malloc失败.CONSCHECK似乎代表一致性检查.对于一些_alloc调用也会返回EX_EOM - "End Of Memory"?
小智 5
值得注意的是,如果您mysqldump在 php 函数中使用exec,shell_exec或者system作为命令使用,如果您没有将文件写入所选位置的权限,它将返回 02 退出代码。
在我的例子中命令:
mysqldump '-uUSER' '-pPASS' DATABASE > /home/USER/LOCATION/dump.sql
Run Code Online (Sandbox Code Playgroud)
当从 php 调用时不起作用。向 LOCATION 文件夹添加适当的写入权限后解决了这个问题。
我通过检查调用命令时作为输出发送的内容解决了这个问题:
myslqdump
Run Code Online (Sandbox Code Playgroud)
以及之后:
mysqldump '-uUSER' '-pPASS' DATABASE
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,命令都在函数的第二个参数中给出了正确的响应exec。
| 归档时间: |
|
| 查看次数: |
23760 次 |
| 最近记录: |