我已经配置了一个批处理文件,每隔30秒左右检查一个Web托管数据库,看看一个字段中的值是否已经设置为1.我很高兴它是如何工作的,结果很好。
但是我遇到的一个问题是,有时脚本无法连接到SQL服务器。发生这种情况时,我的脚本出错,批处理文件停止。
我使用的连接线是:
mysql --host=xxx.xxx.xxx --port=3306 --force --user=wmc --password=xxxxxxxxx --database=xxx < xxx.sql
最后的sql文件包含我想要运行的命令。我读了一些文档,说--force应该在错误之后使脚本继续运行,但是当它无法连接到SQL服务器时仍然会出错。有什么方法可以捕获这个错误吗?
答案 0 :(得分:0)
您的主要问题似乎是错误处理。我个人会更改我的脚本以便能够检测到故障,然后重试直到成功。
我在自己的系统上进行的粗略测试,用于检查错误级别的伪环境变量:
<强> TEST.BAT 强>
listView.setSelection(position);
控制台结果
D:\xampp\mysql\bin\mysql --host=127.0.0.1 --port=3306 --force --user=root2 --password= --database=saasplex < test.sql
echo Exit Code is %errorlevel%
D:\xampp\mysql\bin\mysql --host=127.0.0.1 --port=3306 --force --user=root --password= --database=saasplex < test.sql
echo Exit Code is %errorlevel%
F:\_MBAK_DOCUMENTS\_OTHER_PROJECTS\STACKEXCHANGE\August6>mysqlErrorDetect.bat
F:\_MBAK_DOCUMENTS\_OTHER_PROJECTS\STACKEXCHANGE\August6>D:\xampp\mysql\bin\mysql --host=127.0.0.1 --port=3306 --force --user=root2 --password= --database=saasplex 0<test.sql
Warning: Using a password on the command line interface can be insecure.
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'saasplex'
F:\_MBAK_DOCUMENTS\_OTHER_PROJECTS\STACKEXCHANGE\August6>echo Exit Code is 1
Exit Code is 1
F:\_MBAK_DOCUMENTS\_OTHER_PROJECTS\STACKEXCHANGE\August6>D:\xampp\mysql\bin\mysql --host=127.0.0.1 --port=3306 --force --user=root --password= --database=saasplex 0<test.sql
Warning: Using a password on the command line interface can be insecure.
1
1
F:\_MBAK_DOCUMENTS\_OTHER_PROJECTS\STACKEXCHANGE\August6>echo Exit Code is 0