@baobao-mizho

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

「MySQL Workbench」をバッチで動かすことはできますか?

解決したいこと

現在「MySQL Workbench 8.0CE」を使って手動でやっていることを、自動で行いたいと思っています。
以下の処理をバッチで動かすことはできるのでしょうか?
なお、環境はWindows11です。

①「MySQL Workbench 8.0CE」の起動
②2つあるコネクションのAに接続
③SQLファイルを開く
④SQL実行
⑤結果をファイルに保存

0 likes

4Answer

Comments

  1. @baobao-mizho

    Questioner

    @nak435さん、ご回答ありがとうございます。
    このバッチだとMySQLサーバがローカルの場合ですよね?
    サーバがクラウドの時はどのようになるかご存じでしょうか?

  2. 以下のコマンドをバッチファイルに書いて実行してはどうでしょうか。
    バッチ実行の出力をリダイレクトすれば、結果がファイルに保存されると思います。

    mysql -h hostname -u user -ppassword -e "use mydb; select * form mytable;" 
    
    SQLファイル実行
    mysql -h hostname -u user -ppassword -D "mydb" < sqlfile.sql 
    
  3. @baobao-mizho

    Questioner

    @nak435さん、ご回答ありがとうございます。
    sqlファイルが使えると今の資産を活用できるので楽そうです。
    本番のデータベースでテストするのはドキドキするので、来週テスト環境でやってみたいと思います。

Comments

  1. @baobao-mizho

    Questioner

    @oh_jigさん、ご回答ありがとうございます。
    このバッチだとMySQLサーバがローカルの場合ですよね?
    サーバがクラウドの時はどのようになるかご存じでしょうか?

  2. 環境変数のDB_HOST,DB_PORTで指定するか、コマンドオプションの--host(-h)、--port(-P)で指定します。
    あえて、localhostのデータベースに接続するなら下記のようになります。localhostの部分を書き換えれば、リモートのDBに接続できますよ。

    @echo off
    REM MySQLSQLのbinディレクトリ
    set MYSQLPATH=C:\Program Files\MySQL\MySQL Server 8.0\bin\
    REM 接続情報
    set USER_ID=root
    set PASS=abc123
    set DB_NAME=house_work
    set DB_HOST=localhost
    set DB_PORT=3306
    set OPTION=--default-character-set=utf8
    "%MYSQLPATH%mysql.exe" %OPTION% -h %DB_HOST% -P %DB_PORT% -u %USER_ID% -p%PASS% -D %DB_NAME%
    
  3. @baobao-mizho

    Questioner

    @oh_jigさん、ご回答ありがとうございます。
    localhostを変えればリモートのDBに接続できるのですね。
    本番のデータベースでテストするのはドキドキするので、来週テスト環境でやってみたいと思います。

こんばんは!
windowsのタスクスケジュールでセットして起動できるかも知りません。
IMG_3065.png

0Like

Comments

  1. @baobao-mizho

    Questioner

    @tumee さん、ご回答ありがとうございます。
    コマンドで操作できるようになったら、タスクスケジューラに入れようと思っていました!

皆様のアドバイスを参考にやっていますが、まだ上手くできていません。
SSH経由でアクセスする必要があるのと、いろいろ制限のかかっているPCだからかもしれません。
もう少し試行錯誤してみます。

0Like

Your answer might help someone💌