2016-01-07 32 views
-1

我想弄清楚如何测试一个连接是否可能与一组给定的用户,pw和db名称信息。我从环境文件解析出user_name,password和database_name,然后我想测试连接是否可行。如果可能,请继续执行脚本的其余部分,如果不可行,请退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本,它只运行一切,但如果它失败,我无法分辨它失败的位置。如何测试连接到mysql服务器?

+0

$ conn =(SQL statement); if(!$ conn){error output} else {do logic}; – Anton

回答

1

您可以无操作连接:

mysql -e '\q' 

如果我运行这个用合适的.my.cnf文件,$?为零。如果我尝试使用不同的用户:

mysql -u root -e '\q' 

然后我得到一个错误消息(可以用2>/dev/null被重定向路程)和$?非零。

请注意,与使用带有SQL库的语言和跨越多个命令的连接相比,这是一个相当有限的测试。例如。一个连接可能会成功,但由于网络条件或用户的conf文件或服务器身份验证的更改,后面的连接可能会失败。

0

,我要去把htis作为回答,这样我可以使用格式...

做类似如下的东西。我不知道你用的是什么代码,所以这是一个很普通的例子:

 $conn = (SQL statement); 
    if (!$conn) 
     {error output} 
    else 
     {do logic}; 

所以,如果你有很多报表和您使用的每一个独特的错误输出,那么你可以为他们每个人做这种事情通过阅读输出可以轻松分辨出哪一个问题导致了问题。

+0

这是真的壳吗?它看起来更像perl ... –

+0

它不是shell,因为我提到它是一个通用示例,php是具体的。每次使用它时,您仍然应该能够检查conn变量是否有非法值。它可以节省您单独运行每一个 – Anton