Q151:MZPFアプリケーションからのmysqldumpリモート実行方法について
A151:
MZPFアプリケーションからのmysqldumpリモート実行方法について、お答えいたします。
mysqldumpコマンド自体にリモート起動の機能がございますので、それを使うのが最も簡単なようです。ただし、ローカルPCにもmysqlをインストールしておくことが必要です。具体的な方法は以下の通りです。
MySQLデータベースのサーバー名(ホスト名)をServerとし、ローカルPCの名前をClientとします。ClientにMySQLをインストールし、コマンドラインから以下のコマンドを実行するとServerが保持しているデータベースのダンプファイルを作成できます。
C:\> mysqldump -u "ユーザ名" -h "ホスト名" --password="パスワード"
--default-character-set="文字コード名" "データベース名" > "ダンプファイル名"
Server上の出力先フォルダをネットワークドライブとして割り当てておけば、ダンプファイルをServer上に作成することも可能です。
MZPFアプリケーションからこれを行う場合には、外部プログラム通信コンポーネントを使って、mysqldumpを実行します。サンプルとして、"remoteMySQLdump.mzax"を用意しましたので、ご覧ください。外部プログラム通信コンポーネントでは、出力先ファイルを指定する「>」(コマンド末尾の... > "ダンプファイル名" の部分)を使えませんので、テキストファイル出力コンポーネントを使ってダンプ文字列を出力しています。
ダンプ元のデータベース名や出力先のファイル名が固定の場合には、あらかじめ上述のコマンドを記述したバッチファイルを作っておき、それを実行するという方法もあります。こちらもサンプル"remoteMySQLdumpBat.mzax"とバッチファイル"dump.bat"を用意しましたので、合わせてご覧ください。
関連ファイル:remoteMySQLdump.mzax、remoteMySQLdumpBat.mzax、dump.bat