如何使用批处理/ shell脚本检查用户/密码的mysql连接

时间:2010-04-19 15:55:33

标签: mysql batch-file mysql-error-1045

如何使用批处理/ shell脚本检查用户/密码的mysql连接?

我有用户名和密码,我需要验证它们是否正确,但是如何?

我试过这种方式:

  1. 我用“mysql -u User-password = UserPassword< commands.sql”
  2. 创建了一个批处理文件“run.bat”
  3. “commands.sql”文件包含“\ q”
  4. 当我运行文件“run.bat”时,当用户/密码正确时输出为空,而当用户/密码不正确时,输出“ERROR 1045(28000):用户拒绝访问...”。现在我们可以捕获这个输出,并决定连接是否成功,如果是,如何?
  5. 此致

3 个答案:

答案 0 :(得分:4)

我找到了一个解决方案如下:

@echo OFF
echo \q | mysql -u User --password=UserPassword 2>nul

if "%ERRORLEVEL%" == "0" (
  echo CONNECTION SUCCESSFUL
) else (
  echo CONNECTION FAILED
)

答案 1 :(得分:2)

您可以查看mysql的返回状态。它存储在ERRORLEVEL环境变量:

mysql -u User--password=UserPassword < commands.sql
if "%ERRORLEVEL%" EQU "0" (
  echo OK
) else (
  echo FAIL
)

如果幸运的话,mysql.exe甚至会返回“登录失败”的特定状态,您可以对此做出反应。大多数应用程序在成功时返回0并且在失败时返回!= 0。在命令后立即使用echo %ERRORLEVEL%找出当前值。

更高级的方法是捕获和评估应用程序的STDERR流。然而,这对于另一个问题来说是重要的。

答案 2 :(得分:0)

您可以使用“.my.cnf”文件

我这样做,虽然id强烈建议不要使用你的mysql root登录

[root@daaorc900c ~]# cat ./.my.cnf 
[client]
user=monitoruser
password=whatismonitor
[root@daaorc900c ~]# 

看起来你可能是一个窗口,所以这里是widnows中“选项文件”的文档

http://dev.mysql.com/doc/refman/5.1/en/option-files.html