gpt4 book ai didi

mysql - 通过批处理文件连接到 MySQL

转载 作者:可可西里 更新时间:2023-11-01 09:05:37 27 4
gpt4 key购买 nike

我配置了一个批处理文件,每 30 秒左右检查一次 Web 托管数据库,以查看一个字段中的值是否已设置为 1。我对它的工作方式很满意,结果也很好。

但是我遇到的一个问题是脚本有时无法连接到 SQL 服务器。发生这种情况时,我的脚本会出错并且批处理文件会停止。

我使用的连接线是:

mysql --host=xxx.xxx.xxx --port=3306 --force --user=wmc --password=xxxxxxxxx --database=xxx < xxx.sql

末尾的 sql 文件包含我要运行的命令。我读了一些文档,说 --force 应该让脚本在出错后继续,但是当它无法连接到 SQL 服务器时它仍然会出错。有什么方法可以捕获此错误?

最佳答案

您的主要问题似乎是错误处理。我会亲自更改我的脚本,以便能够检测到故障,然后重试直到成功。

快速测试

我在自己的系统上做的粗略测试,检查错误级别伪环境变量:

测试.bat

 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

带重试的批处理脚本

set tries=10
:loop

D:\xampp\mysql\bin\mysql --host=127.0.0.1 --port=3306 --force --user=root --password= --database=saasplex < test.sql

if errorlevel 1 (
set /a tries=tries-1
if %tries%==0 goto exitloop
goto loop
)

:exitloop

关于mysql - 通过批处理文件连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31651532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com