1

バッチ/シェルスクリプトを使用して、ユーザー/パスワードのmysql接続を確認するにはどうすればよいですか?

ユーザー名とパスワードを持っているので、それらが正しいかどうかを認証する必要がありますが、どうすればよいですか?

私はこの方法を試しました:

  1. 「mysql-uUser--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

の返品状況を確認できますmysqlERRORLEVELこれは、環境変数に格納されます。

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@daaorc900c ~]# cat ./.my.cnf 
[client]
user=monitoruser
password=whatismonitor
[root@daaorc900c ~]# 

あなたは1つのウィンドウのように見えるので、ここにwidnowsの「オプションファイル」のドキュメントがあります

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

于 2010-04-19T15:58:26.843 に答える