Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从转储文件还原数据库时如何记录sql错误_Mysql_Logging_Error Handling_Restore - Fatal编程技术网

Mysql 从转储文件还原数据库时如何记录sql错误

Mysql 从转储文件还原数据库时如何记录sql错误,mysql,logging,error-handling,restore,Mysql,Logging,Error Handling,Restore,对于这里的任何重复,我深表歉意,但我发誓我已经进行了研究(并在此过程中学到了很多) 环境是在Windows7上使用MYISAM表引擎的MySQL 5.5 任务是恢复从MySQL 4.0转储的数据库。我从命令行执行此操作(我尝试使用Oracle的MySQL Workbench导入实用程序,但如果遇到错误,它将失败)。恢复已完成,但我知道会抛出错误。我希望捕获这些信息,以便确保恢复顺利完成 常规日志似乎没有捕获任何内容(是的,它已打开)。另一个日志文件(local_host_name.log)似乎根

对于这里的任何重复,我深表歉意,但我发誓我已经进行了研究(并在此过程中学到了很多)

环境是在Windows7上使用MYISAM表引擎的MySQL 5.5

任务是恢复从MySQL 4.0转储的数据库。我从命令行执行此操作(我尝试使用Oracle的MySQL Workbench导入实用程序,但如果遇到错误,它将失败)。恢复已完成,但我知道会抛出错误。我希望捕获这些信息,以便确保恢复顺利完成

常规日志似乎没有捕获任何内容(是的,它已打开)。另一个日志文件(local_host_name.log)似乎根本没有捕获sql语句级错误

从命令行恢复时是否有捕获错误的方法?是否有一种方法可以使用将错误写入日志文件的throw/catch语句编辑转储文件本身

提前感谢——我是MySQL的新手,也是MS SQL的一员。

@Rob在您的提示(cmd?)中尝试以下方法:

mysql -u your_user your_database <c:\path\to\your_script.sql >stdout_output.txt 2>stderr_output.txt
mysql-u您的用户您的数据库stdout\u output.txt 2>stderr\u output.txt

没有尖括号,符号“”是命令行shell的重定向信号

我使用bash脚本恢复MySQL TB数据库,并将输出记录到如下所示的文件中

/bin/bash /home/installation/scripts/finqa_restore.sh 2>&1 | tee /home/installation/scripts/output-stat.txt
这对我很有用:

 pv import_test.sql | mysql -urootuser -pyourpassword the_db_name >st_out_log.txt 2>error_log.txt

我遇到的一个问题是,它似乎只捕获了一个错误。可能脚本在出现错误后停止执行。

如果您通过命令行运行导入,我将尝试使用--verbose命令再次运行它。这将在导入时向屏幕打印更多信息,包括错误。我来试一试--问题是,转储文件包含数千条语句,Windows命令行不会显示所有行。您可以使用“>”将输出重定向到文件。ie“mysql-u asdf-Ppass-h localhost databasenameerrors.txt”btw——感谢您的帮助——非常感谢——现在,在使用Windows命令行的mysql提示符下,我按如下方式运行导入:mysql>source c:\path\to\dumpfile.sql我应该如何用尖括号封装语句?我尝试了几种组合,最接近的是错误22。感谢您的回答——我能够使用tee命令将输出写入文件。如果我尝试您建议的语法,我会得到一个换行符,提示->但命令实际上没有执行。对不起,如果我遗漏了一些明显的东西。很高兴你的问题解决了。这个提示符号很奇怪,通常mysql会在缺少半逗号时打印它。执行命令时,stderr_output.txt中是否有任何输出?