1

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

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

我试过这样:

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

问候

4

3 回答 3

4

我找到了如下解决方案:

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

if "%ERRORLEVEL%" == "0" (
  echo CONNECTION SUCCESSFUL
) else (
  echo CONNECTION FAILED
)
于 2010-04-20T08:01:23.083 回答
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 流。然而,这对于一个不同的问题来说是很重要的。

于 2010-04-19T16:03:15.903 回答
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

于 2010-04-19T15:58:26.843 回答