mysqldump锁表运行脚本时出现错误

我写了一个shell脚本来备份mysql所有的数据库。 该脚本没有任何问题,除了这个错误“mysqldump:有错误:1017:无法find文件:'drupal_install_test'(错误:2)时使用locking表”

请帮助解决这个问题。

提前致谢。

当文件系统达到open files limit时,通常会在大型数据库上popup这样的错误。 通常MySQL从你的操作系统采用这个值,所以它取决于多less。 你可以用下面的查询来查看它: SHOW VARIABLES LIKE 'open_files_limit' ,它可以返回如下所示:

 mysql> SHOW VARIABLES LIKE 'open_files_limit'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1024 | +------------------+-------+ 

根据您使用的存储引擎,单个表最多可以在磁盘上使用2个或3个文件(如.FRM,.MYI和.MYD),所以如果您的数据库有512或341个以上的表,就会窒息。

现在,你用debian标记了你的问题,我认为这是在debian服务器上。 你可以用这个命令来提高限制:

 ulimit -n XXXX 

XXXX是新的限制,如2048(不要太太极端!)。 如果这不起作用或者没有永久保存,则可能需要编辑/etc/security/limits.conf文件。

另请参阅此页面和这一个参考这个问题。

你用mysqldump -A来备份吗? 你不会碰巧在mysql数据目录中有一个老的drupal安装脚本?

尝试使用mysqldump的-f选项