MySQL,错误126:表的密钥文件不正确
我读了以下有关联的问题,但这些回答并没有让我满意:MySQL,错误126:表的密钥文件不正确,mysql,sql,mysql-error-126,Mysql,Sql,Mysql Error 126,我读了以下有关联的问题,但这些回答并没有让我满意: 问题 运行查询时,我会遇到此错误 错误126(HY000):表的密钥文件不正确` 问题 当我试图找到问题时,我找不到问题,因此我不知道如何使用修复命令修复它。 如果我已经尝试过其他方法,是否有任何方法可以帮助我找到导致此问题的问题 询问 mysqlcheck 数行 更新 磁盘使用 您的查询似乎返回了一个大的中间结果集,需要 创建一个临时表,并指定mysql临时表的配置位置 磁盘表(/tmp)对于生成的临时表来说不够大 您可以尝试通过重新
问题 运行查询时,我会遇到此错误 错误126(HY000):表的密钥文件不正确` 问题 当我试图找到问题时,我找不到问题,因此我不知道如何使用修复命令修复它。 如果我已经尝试过其他方法,是否有任何方法可以帮助我找到导致此问题的问题
询问 mysqlcheck 数行
更新
磁盘使用
您的查询似乎返回了一个大的中间结果集,需要 创建一个临时表,并指定mysql临时表的配置位置 磁盘表(/tmp)对于生成的临时表来说不够大 您可以尝试通过重新安装tmpfs分区来增加其大小:
mount -t tmpfs -o remount,size=1G tmpfs /tmp
您可以通过编辑/etc/fstab使此更改永久化
如果无法执行此操作,可以尝试更改磁盘的位置
通过编辑my.cnf文件中的“tmpdir”条目(或添加
如果它不在那里,它就会被删除)。记住,你的目录
choose应该是mysql用户可写的
您还可以尝试通过增加
mysql配置选项的值:
tmp_table_size
max_heap_table_size
到更大的值。您需要增加上述两个参数
例如:
set global tmp_table_size = 1G;
set global max_heap_table_size = 1G;
您只需要修复在搜索查询中使用的表。这个问题通常发生在搜索查询中
转到“表名”“->操作->修复(只需单击一次)应用效果可能需要一些时间将复杂查询拆分为多个查询会更快,而无需增加临时表大小在我的情况下,我刚刚从临时位置清除了临时文件: my.ini tmpdir=“D:/xampp/tmp”
这对我很有效。如果您在linux文件系统上的
/tmp
挂载是以溢出方式挂载的,通常大小为1MB,即
$df-h
已使用的文件系统大小可用已安装的文件系统%
udev 7.9G 12K 7.9G 1%/开发
tmpfs 1.6G 348K 1.6G 1%/次
/dev/xvda1 493G 6.9G 466G 2%/
无4.0K0 4.0K0%/sys/fs/cgroup
无5.0M 0.0M 0%/运行/锁定
无7.9G 0 7.9G 0%/运行/shm
无100M 0 100M 0%/运行/用户
溢出1.0M 4.0K 1020K 1%/tmp磁盘空间问题如何?500GB硬盘空间,数据库中没有BLOB,我看不出这是怎么回事。目前,它实际上并不是一个很大的av数据库。该项目正在测试中,因此我们比目前需要的资源多得多。尽管如此,我将仔细查看并使用information@Sebas虽然我对当前磁盘大小的看法是错误的,但我相信我们仍然应该有一个确定的裕度。还应该提到的是,本例中的查询应该以不同的方式格式化,以避免此问题。在这种情况下,使用多个查询要快得多。这为我指明了正确的方向。在我的例子中,我最近在根分区上用完了空间,它生成了一个溢出挂载来保护/tmp
。当我用完房间时,我调整了音量。几个月后,我遇到了这个错误,这是因为我没有删除的溢出装载太小。谢谢你!他没有提到在mysql中使用任何gui,您显然描述了在某些gui上执行的步骤(因为您说“只需单击一下”)。
root@scraper:/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 4.7G 15G 26% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 237M 4.0K 237M 1% /dev
tmpfs 49M 188K 49M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 245M 0 245M 0% /run/shm
none 100M 0 100M 0% /run/user
mount -t tmpfs -o remount,size=1G tmpfs /tmp
tmp_table_size
max_heap_table_size
set global tmp_table_size = 1G;
set global max_heap_table_size = 1G;
sudo umount -l /tmp