我试图找出如何测试是否可以使用给定的用户,pw和db名称信息集进行连接。我从环境文件中解析出user_name,password和database_name,然后我想测试是否可以连接。如果可能,继续执行脚本的其余部分,如果不可能,请退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本只运行所有内容,但如果它失败,我无法告诉它失败的地方。
答案 0 :(得分:4)
您可以进行无操作连接:
mysql -e '\q'
如果我使用合适的.my.cnf
文件运行此文件,则$?
为零。如果我尝试使用其他用户:
mysql -u root -e '\q'
然后我收到一条错误消息(可以使用2>/dev/null
重定向)并且$?
非零。
请注意,与使用带有SQL库的语言和跨多个命令的连接相比,这是一个相当有限的测试。例如。一个连接可能会成功,但后一个连接可能会因网络状况或用户的conf文件或服务器身份验证的更改而失败。
答案 1 :(得分:-1)
我要把htis作为答案,所以我可以使用格式化......
执行类似以下的操作。我不知道你正在使用什么代码,所以这是一个相当通用的例子:
$conn = (SQL statement);
if (!$conn)
{error output}
else
{do logic};
因此,如果您有许多语句,并且每个语句都为每个语句使用唯一的错误输出,那么您可以通过读取输出轻松地判断哪个语句导致问题。