我正在使用一个php脚本来远程备份我的sql数据库,它利用了mysqldump。http://www.dagondesign.com/files/backup_dbs.txt
我尝试添加--lock- tables =false,因为我使用的是MyISAM表,但仍然收到错误。
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放在一起,如果你远程操作,它会锁定数据库吗?或者它不应该在那里,因为有很多人在服务器上工作,可能有人创建了它?
发布于 2012-09-20 06:07:42
在使用Wamp的Windows7上,选项是--skip-lock-tables
发布于 2012-09-20 06:02:11
很可能--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然后添加回您想要的任何标志。
https://stackoverflow.com/questions/12503367
复制相似问题