当我通过 Runtime.getRuntime 从 Java 运行相同的命令时,我得到返回码 6。相同的命令在命令行中运行良好:
process = Runtime.getRuntime().exec(mysqldumpCommand);
int processComplete = process.waitFor();
对于这 2 个命令,当从 java 运行并且没有转储时,我得到返回码 6。从命令行工作正常(我在本地环境中没有密码。)
mysqldump --user=root --password= --host=localhost dbname > c:\temp\dumpfile.sql
mysqldump --user=root --password="" --host=localhost dbname > c:\temp\dumpfile.sql
当故意输入错误密码时,我在 java 中得到返回码 2,并且在命令行中出现连接错误:
mysqldump --user=root --password= --host=localhost dbname > c:\temp\dumpfile.sql
我在这里找到的返回码:
Taken from client/mysqldump.c in MySQL 5.1.59:
#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
在 java 中运行相同的命令并且从命令行正常工作时,我为什么会得到(错误)返回码 6?
稍后编辑:我从 Windows 尝试。