我阅读了以下具有相关性的问题,但答复并未使我满意:MySQL:#126-表的密钥文件不正确
运行查询时出现此错误
错误126(HY000):表的密钥文件不正确`
当我试图找到问题时,我找不到问题,所以我不知道如何使用repair命令修复它。在我已经尝试过之后,是否有其他任何方法可以指示我如何找到导致此问题的问题呢?
mysql> SELECT
-> Process.processId,
-> Domain.id AS domainId,
-> Domain.host,
-> Process.started,
-> COUNT(DISTINCT Joppli.id) AS countedObjects,
-> COUNT(DISTINCT Page.id) AS countedPages,
-> COUNT(DISTINCT Rule.id) AS countedRules
-> FROM Domain
-> JOIN CustomScrapingRule
-> AS Rule
-> ON Rule.Domain_id = Domain.id
-> LEFT JOIN StructuredData_Joppli
-> AS Joppli
-> ON Joppli.CustomScrapingRule_id = Rule.id
-> LEFT JOIN Domain_Page
-> AS Page
-> ON Page.Domain_id = Domain.id
-> LEFT JOIN Domain_Process
-> AS Process
-> ON Process.Domain_id = Domain.id
-> WHERE Rule.CustomScrapingRule_id IS NULL
-> GROUP BY Domain.id
-> ORDER BY Domain.host;
ERROR 126 (HY000): Incorrect key file for table '/tmp/#sql_2b5_4.MYI'; try to repair it
root@scraper:~# mysqlcheck -p scraper
Enter password:
scraper.CustomScrapingRule OK
scraper.Domain OK
scraper.Domain_Page OK
scraper.Domain_Page_Rank OK
scraper.Domain_Process OK
scraper.Log OK
scraper.StructuredData_Joppli OK
scraper.StructuredData_Joppli_Product OK
mysql> select count(*) from CustomScrapingRule;
+----------+
| count(*) |
+----------+
| 26 |
+----------+
1 row in set (0.04 sec)
mysql> select count(*) from Domain;
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.01 sec)
mysql> select count(*) from Domain_Page;
+----------+
| count(*) |
+----------+
| 134288 |
+----------+
1 row in set (0.17 sec)
mysql> select count(*) from Domain_Page_Rank;
+----------+
| count(*) |
+----------+
| 4671111 |
+----------+
1 row in set (11.69 sec)
mysql> select count(*) from Domain_Process;
+----------+
| count(*) |
+----------+
| 2 |
+----------+
1 row in set (0.02 sec)
mysql> select count(*) from Log;
+----------+
| count(*) |
+----------+
| 41 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from StructuredData_Joppli;
+----------+
| count(*) |
+----------+
| 11433 |
+----------+
1 row in set (0.16 sec)
mysql> select count(*) from StructuredData_Joppli_Product;
+----------+
| count(*) |
+----------+
| 130784 |
+----------+
1 row in set (0.20 sec)
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
看来您的查询返回的是一个大型的中间结果集,需要创建一个临时表,并且mysql临时磁盘表(/ tmp)的配置位置对于生成的临时表来说还不够大。
您可以尝试通过重新安装来增加tmpfs分区的大小:
mount -t tmpfs -o remount,size=1G tmpfs /tmp
您可以通过编辑/ etc / fstab使此更改永久生效
如果无法执行此操作,则可以尝试通过编辑my.cnf文件中的“
tmpdir”条目来更改磁盘临时表的位置(如果尚未存在,请添加它)。请记住,您选择的目录应该是mysql用户可写的
您也可以尝试通过增加mysql配置选项的值来阻止在磁盘上创建临时表:
tmp_table_size
max_heap_table_size
更大的值。您将需要同时增加以上两个参数
例:
set global tmp_table_size = 1G;
set global max_heap_table_size = 1G;
问题内容: 我不经常来这里寻求帮助,但是对此我感到非常沮丧,我希望有人以前遇到过它。 每当我尝试使用多个联接从表中获取记录时,都会出现此错误: 因此,此查询将产生错误: 但这不会: 而且这个也不会: 是什么原因造成的?我真的不知道如何修复tmp表,但是我真的不认为这是问题所在,因为每次都是新的tmp表。用户名表相当大(目前有233,718条记录),但我怀疑这与它有关。 任何帮助将非常感激。 更新
问题内容: 我有一个主键为varchar(255)的表。在某些情况下,255个字符不够用。我尝试将字段更改为文本,但是出现以下错误: 我怎样才能解决这个问题? 编辑:我还应该指出,该表具有包含多个列的复合主键。 问题答案: 发生错误是因为MySQL只能索引BLOB或列的前N个字符。所以错误主要发生时,有一个领域/列类型或BLOB或那些属于或类型,如,,,,,和您尝试使一个主键或索引。无论长度是完整
问题内容: 我尝试创建一个新的自我认证的密钥库文件 我使用的命令是: 但我总是收到这个烦人的错误: 我不明白为什么会收到此错误。上面的命令应该创建一个新的密钥库,所以为什么它抱怨不存在的密钥库? 问题答案: 生成密钥对(和新的密钥库)必须作为为该密钥创建自签名证书的单独操作来完成。 即
有人能帮我整合一下。带jmeter的pfx客户端证书?我已将pfx文件转换为jks文件。我已经在系统中添加了相同的功能。财产。但我无法执行客户的请求。我得到以下错误。 2018-11-08 22:31:08137信息o.a.j.u.SSLManager:JmeterKeyStore位置:C:MyWorkSpace/apache-jmeter-5.0certclientcert。jks type j
问题内容: 我已经使用熊猫成功读取了一个csv文件。当我尝试从数据框中打印特定列时,出现键盘错误。因此,我与错误共享代码。 ** 有人可以帮我吗? 问题答案: 我认为首先最好调查一下,什么是真实的列名,如果转换成更好的列表会看到一些空格或类似的东西: print (reviews_new.columns.tolist()) 我认为可能有2个问题(显然): 1.列名中的空格(也可能在数据中) 解决方
问题内容: 我正在尝试将大量用户列表插入MySQL数据库,但是每次尝试都出现错误: 之所以这样,是因为第二列在很多条目上都是空白的,因此在第二列中插入一个空白条目后,就不会再添加另一个了。但是,当我昨天添加了大多数列表时,即使昨天添加的很多条目在第2列中也有一个空白单元格,我也没有一次收到此错误。这是怎么回事? 这是插入1个条目的sql代码。其余的遵循相同的格式: 问题答案: 除了Sabeen的答