1

mysqldumpを利用するsqlデータベースをリモートでバックアップするためにphpスクリプトを使用しています。 http://www.dagondesign.com/files/backup_dbs.txt

MyISAMテーブルを使用しているので、-lock-tables = falseを追加しようとしましたが、それでもエラーが発生しました。

exec( "$MYSQL_PATH/mysqldump --lock-tables=false $db_auth --opt $db 2>&1 >$BACKUP_TEMP/$db.sql", $output, $res);

エラー:

mysqldump: Couldn't execute 'show fields from `advisory_info`': Can't create/write to file 'E:\tmp\#sql_59c_0.MYD' (Errcode: 17) (1)

誰かがこのファイルはそれ自体がロックファイルであると私に言いました、そして私はバックアップしたいそれを私のサーバーで見つけることができました。

それで、これはロックファイルですか?また、変数--lock-tables = falseを指定しても、リモートで実行するとデータベースがロックされますか?それとも、サーバーで作業している人がたくさんいて、誰かがサーバーを作成した可能性があるので、そこにあるべきではありませんか?

4

2 に答える 2

2

おそらく--lock-tables=false、あなたが思っていることをしていないのでしょう。を渡しているので、おそらくテーブルをロック--lock-tablesたいと想定しているので(これがデフォルトですが)、テーブルをロックしています。Linuxでは、フラグを防ぐのではなく、またはのようなものを追加しますが、通常はまたはを使用します。=false=0--skip-X--no-X

あなたは試してみたいかもしれません--skip-opt

  --skip-opt          Disable --opt. Disables --add-drop-table, --add-locks,
                      --lock-tables, --set-charset, and --disable-keys.

--optデフォルトで有効になっているため、必要--skip-optなフラグを追加し直すことができます。

于 2012-09-19T22:02:11.350 に答える
1

Wampを使用するWindows7では、オプションは次のとおりです。--skip-lock-tables

この答えから取った

于 2012-09-19T22:07:42.130 に答える