Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何测试与mysql服务器的连接?_Mysql_Shell - Fatal编程技术网

如何测试与mysql服务器的连接?

如何测试与mysql服务器的连接?,mysql,shell,Mysql,Shell,我试图找出如何测试一个连接是否可以与一组给定的用户、pw和db name信息进行连接。我从一个环境文件中解析出用户名、密码和数据库名,然后我想测试连接是否可行。如果可能,继续脚本的其余部分,如果不可能,退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本,它只运行所有东西,但如果失败了,我无法告诉它在哪里失败。我将把htis作为一个答案,这样我就可以使用格式 执行与以下类似的操作。我不知道您使用的是什么代码,因此这是一个相当通用的示例: $conn = (SQL statemen

我试图找出如何测试一个连接是否可以与一组给定的用户、pw和db name信息进行连接。我从一个环境文件中解析出用户名、密码和数据库名,然后我想测试连接是否可行。如果可能,继续脚本的其余部分,如果不可能,退出并打印错误消息。我想测试连接,因为我有另一个更大的脚本,它只运行所有东西,但如果失败了,我无法告诉它在哪里失败。

我将把htis作为一个答案,这样我就可以使用格式

执行与以下类似的操作。我不知道您使用的是什么代码,因此这是一个相当通用的示例:

     $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变量时,您应该仍然能够检查该变量是否存在非法值。它只是让您可以单独运行每一个