我有一个 wordpress MU 数据库,里面有大约 10,000 多个表,用于存储各种用户的博客。我需要将 wordpress MU 升级到最新版本,但想事先备份数据库。
当我单击导出时,PHPMyAdmin 甚至无法加载页面。我尝试进入服务器(Windows)并使用 dos 命令行:
mysqldump -u USERNAME -p PASSWORD> BACKUP.sql
但它挂了一分钟并给了我错误:
error 23: out of resources when opinging file '.\USERNAME\wp_1037_links.MYD' (Errorcode: 24) when using LOCK Tables
我做错了什么,或者我应该做什么? PHPMyAdmin 适合这种规模吗? 有没有比我尝试的两种方法更好的方法?
**请注意,这不是我的网站,因此有关数据库设置的任何建议都必须由所有者提出。我来这里只是为了处理与 WP 相关的废话,这有点超出了我的工作范围。
答案1
尝试以下操作:mysqldump --lock-all-table -u USERNAME -p PASSWORD > BACKUP.sql
请注意,如果这是实时的,它可能会停止网站的运行。
答案2
该错误表明您的服务器资源即将耗尽;原因可能是锁定:mysqldump 在读取表时会隐式锁定表。如果数据库上有大量活动,MySQL 将需要保留一份旧数据的副本以供 mysqldump 事务使用;对于足够大的表,这可能是一个真正的问题。
如果您不太关心数据一致性,您可以使用--skip-lock-tables
(-q
实际上不起作用,它只会阻止输出缓冲。这可能有用,但不会解决您的问题)和--single-transaction
。
答案3
我遇到了同样的问题,我认为它是 my.cnf 的 open_files_limit 变量
只需更新你的my.cnf
打开文件限制=20000
[& 重新开始]
该值应为 2 * 数据库中的表数。如果这不起作用,请尝试 3 * 表数。如果这仍然不起作用,请不要增加,因为这不是您的情况中的问题。再次搜索解决方案 ;-)
答案4
错误 23:打开文件 '.\USERNAME\wp_1037_links.MYD' 时资源不足
这听起来更像是服务器上的一般 RAM 或硬盘问题。那是虚拟机吗?首先检查硬盘quota
。可能是 mySQL 甚至在尝试访问表时空间不足 - 在这种情况下,即使是压缩备份也无济于事。