运行脚本时出现 Mysqldump Lock Table 错误

运行脚本时出现 Mysqldump Lock Table 错误

我编写了一个 shell 脚本来备份 mysql 所有数据库。除了这个错误之外,该脚本没有任何问题“mysqldump:使用 LOCK TABLES 时出现错误:1017:找不到文件:‘drupal_install_test’(errno:2)”

请帮忙解决这个问题。

提前致谢。

答案1

当您的文件系统达到其上限时,大型数据库通常会弹出此类错误open files limit。通常,MySQL 会从您的操作系统采用此值,因此这取决于上限是多少。您可以使用查询来检查它: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文件。

另请参阅这一页这个请参阅有关此问题的参考。

答案2

您使用 mysqldump -A 备份了吗?您在 mysql 数据目录中没有旧的 drupal 安装脚本吗?

答案3

尝试-Fmysqldump 选项

相关内容