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

如何使用批处理/shell脚本检查mysql连接中的用户/密码,mysql,batch-file,mysql-error-1045,Mysql,Batch File,Mysql Error 1045,如何使用批处理/shell脚本检查mysql连接中的用户/密码 我有用户名和密码,我需要验证它们是否正确,但如何验证 我试着这样做: 我创建了一个批处理文件“run.bat”,其中包含“mysql-u User--password=UserPassword

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

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

我试着这样做:

  • 我创建了一个批处理文件“run.bat”,其中包含“mysql-u User--password=UserPassword
  • “commands.sql”文件包含“\q”
  • 当我运行文件“run.bat”时,如果用户/密码正确,则输出为nothing;如果用户/密码不正确,则输出为“ERROR 1045(28000):拒绝用户访问…”。现在我们可以捕获这个输出,并决定连接是否成功,如果成功,如何实现
  • 关于

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

    我这样做,尽管我强烈建议不要使用mysql根登录

    [root@daaorc900c ~]# cat ./.my.cnf 
    [client]
    user=monitoruser
    password=whatismonitor
    [root@daaorc900c ~]# 
    
    看起来你可能是一个windows,所以这是widnows中“选项文件”的文档

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

    我这样做,尽管我强烈建议不要使用mysql根登录

    [root@daaorc900c ~]# cat ./.my.cnf 
    [client]
    user=monitoruser
    password=whatismonitor
    [root@daaorc900c ~]# 
    
    看起来你可能是一个windows,所以这是widnows中“选项文件”的文档


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

    mysql -u User--password=UserPassword < commands.sql
    if "%ERRORLEVEL%" EQU "0" (
      echo OK
    ) else (
      echo FAIL
    )
    
    mysql-u User--password=UserPassword
    如果幸运的话,
    mysql.exe
    甚至会返回“登录失败”的特定状态,您可以对此做出反应。大多数应用程序在成功时返回0等!=失败时为0。在命令后立即使用
    echo%ERRORLEVEL%
    查找当前值


    更高级的方法是捕获和评估应用程序的STDERR流。然而,这将是另一个问题的材料。

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

    mysql -u User--password=UserPassword < commands.sql
    if "%ERRORLEVEL%" EQU "0" (
      echo OK
    ) else (
      echo FAIL
    )
    
    mysql-u User--password=UserPassword
    如果幸运的话,
    mysql.exe
    甚至会返回“登录失败”的特定状态,您可以对此做出反应。大多数应用程序在成功时返回0等!=失败时为0。在命令后立即使用
    echo%ERRORLEVEL%
    查找当前值


    更高级的方法是捕获和评估应用程序的STDERR流。然而,这将是另一个问题的材料。

    我找到了如下解决方案:

    @echo OFF
    echo \q | mysql -u User --password=UserPassword 2>nul
    
    if "%ERRORLEVEL%" == "0" (
      echo CONNECTION SUCCESSFUL
    ) else (
      echo CONNECTION FAILED
    )
    

    我找到了如下解决方案:

    @echo OFF
    echo \q | mysql -u User --password=UserPassword 2>nul
    
    if "%ERRORLEVEL%" == "0" (
      echo CONNECTION SUCCESSFUL
    ) else (
      echo CONNECTION FAILED
    )
    

    Windows,我的朋友,Windows哎呀。。。我添加了windows选项文件doc for windows:-/BTW,以防您认为-否决票不是我的。不管怎样,我很不愿意投反对票。托马拉克,别担心。Machaa,mysql“客户端”将在给定位置查找“选项”文件,如果找到它,您可以通过它们将参数传递给mysql,我有一个连接和转储数据库的bash脚本,我使用“[client]”的“user”和“password”选项将正确的用户名和密码传递给mysql客户端。Windows,我的朋友,Windows;-)哎呀。。。我添加了windows选项文件doc for windows:-/BTW,以防您认为-否决票不是我的。不管怎样,我很不愿意投反对票。托马拉克,别担心。Machaa,mysql“客户端”将在给定位置查找“选项”文件,如果找到它,您可以通过它们将参数传递给mysql,我有一个连接和转储数据库的bash脚本,我使用“[client]”的“user”和“password”选项将正确的用户名和密码传递给mysql客户端。