如何测试与mysql服务器的连接?
我试图找出如何测试一个连接是否可以与一组给定的用户、pw和db name信息进行连接。我从一个环境文件中解析出用户名、密码和数据库名,然后我想测试连接是否可行。如果可能,继续脚本的其余部分,如果不可能,退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本,它只运行所有东西,但如果失败了,我无法告诉它在哪里失败。我将把htis作为一个答案,这样我就可以使用格式 执行与以下类似的操作。我不知道您使用的是什么代码,因此这是一个相当通用的示例:如何测试与mysql服务器的连接?,mysql,shell,Mysql,Shell,我试图找出如何测试一个连接是否可以与一组给定的用户、pw和db name信息进行连接。我从一个环境文件中解析出用户名、密码和数据库名,然后我想测试连接是否可行。如果可能,继续脚本的其余部分,如果不可能,退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本,它只运行所有东西,但如果失败了,我无法告诉它在哪里失败。我将把htis作为一个答案,这样我就可以使用格式 执行与以下类似的操作。我不知道您使用的是什么代码,因此这是一个相当通用的示例: $conn = (SQL statemen
$conn = (SQL statement);
if (!$conn)
{error output}
else
{do logic};
因此,如果您有许多语句,并且您使用每个语句的唯一错误输出为每个语句执行此类操作,那么您可以通过读取输出轻松地判断是哪一个语句导致了问题。您可以建立无操作连接:
mysql -e '\q'
如果我使用合适的.my.cnf
文件运行此操作,$?
为零。如果我尝试使用其他用户:
mysql -u root -e '\q'
然后我得到一条错误消息(可以用2>/dev/null
重定向),并且$?
为非零
请注意,与使用带有SQL库的语言和跨多个命令的连接相比,这是一个相当有限的测试。例如,一个连接可能成功,但随后的一个连接可能会由于网络条件或用户的conf文件或服务器身份验证的更改而失败。$conn=(SQL语句);if(!$conn){error output}else{do logic};它不是shell,正如我提到的,它是一个通用示例,具体来说是php。每次使用conn变量时,您应该仍然能够检查该变量是否存在非法值。它只是让您可以单独运行每一个