2012-01-09 3 views
0

.sqlファイル(mysqldumpから生成)にすべてのクエリをアップロード/挿入するMySQLクエリコマンドはありますか?ローカルサーバー上のリモートサーバー上のmysqlデータベースにローカルの.sqlファイル内のすべてのクエリをリモートサーバのMySQLデータベースに挿入するMySQLクエリコマンドの検索

私はアプリケーション内からMySQLクエリ内でこれをすべて実行し、コマンドラインのmysqlコマンドを発行しないようにしたいと思います。そのように出力を解析する際にオーバーヘッドが少し増えると思うからです。

私は何かをお探ししていますか? Perlで:

my $hostname = "remote_server_address"; 
my $dsn = "DBI:mysql:dbname:$hostname"; 
my $user = "user"; 
my $password = "password"; 
my $dbh= DBI->connect($remote)dsn, $user, $pw)); 
my $myquery = "SPECIAL_INSERT_QUERYCOMMAND my_local_mysql_query_file.sql"; 
my $execute = $dbh->prepare($myquery); 
$execute->execute; 

更新:追加要件:任意の「フロー制御と回復力」のクエリのセット全体が転送されますように、ローカルとリモートのサーバの間のいずれかの接続の問題が処理されることにより、があります。そして転送されるファイルのサイズには限界がありますか? (私は望んでいない)。

答えて

1

私はあなたがコマンドラインツールmysql

cat my_local_mysql_query_file.sql | mysql -uuser -ppassword dbname 

またはおかげ@bpgergo

mysql -uuser -ppassword dbname < my_local_mysql_query_file.sql 
+0

1 Windows上を使用することができなかった理由は、私がもともと持っていたとして、私はこれを試してみましょうわからないんだけど考慮される。私の懸念は、エラー出力を解析しています。 MYSQL内で完全にクエリとして実行された場合、executeによって返される結果のエラーコードは扱いが簡単です。または私は間違っていますか? – therobyouknow

+0

mysqlコマンドラインツールを使用している間、すべてのエラーは標準エラー(私が推測する)に書き込まれます。それにもかかわらず、確かに、コマンドラインオプション[force](http://dev.mysql.com/doc/refman/5.5/en/mysql-command-options.html#option_mysql_force)があります。エラーで停止しても続行します。一方、カスタムエラー処理を実装する場合は、.sqlファイルを解析してステートメントを実行するスクリプトを作成する必要があります。 – bpgergo