SORU
18 Ocak 2010, PAZARTESİ


MySQL yanlış anahtar dosyası birden fazla yaparken tmp tablo için katılır

Burada yardım için sık gelmiyorum ama bu sinirli olduğumu ve güzel birini daha önce karşılaştı umuyorum.

Bir tablo birden fazla kullanarak üyelik kayıt almaya çalıştığım zaman bu hatayı alıyorum:

#126 - Incorrect key file for table '/tmp/#sql_64d_0.MYI'; try to repair it

Bu sorgu hata oluşturur:

SELECT * FROM `core_username`
INNER JOIN `core_person` ON (`core_username`.`person_id` = `core_person`.`id`)
INNER JOIN `core_site` ON (`core_username`.`site_id` = `core_site`.`id`)
ORDER BY `core_username`.`name` ASC LIMIT 1

Ama ben demem:

SELECT * FROM `core_username`
INNER JOIN `core_person` ON (`core_username`.`person_id` = `core_person`.`id`)
ORDER BY `core_username`.`name` ASC LIMIT 1

Ve ne olur bu

SELECT * FROM `core_username`
INNER JOIN `core_site` ON (`core_username`.`site_id` = `core_site`.`id`)
ORDER BY `core_username`.`name` ASC LIMIT 1

Buna ne sebep oluyor olabilir? Gerçekten tmp tablo onarma hakkında gitmek nasıl bilmiyorum, ama gerçekten yeni bir tmp tablo her zaman olduğu gibi sorun olduğunu sanmıyorum. Kullanıcı adı tablo oldukça büyük (kayıtları 233,718) ama bunun onunla bir ilgisi şüpheliyim.

Herhangi bir yardım çok mutluluk duyacağız.

GÜNCELLEMEBazı testlerden sonra bu hata sadece sonuçları sipariş vermek istediğimde olmuyor gibi görünüyor. O, bu sorgu bekliyorum bana ne verecek

SELECT * FROM `core_username`
INNER JOIN `core_person` ON (`core_username`.`person_id` = `core_person`.`id`)
INNER JOIN `core_site` ON (`core_username`.`site_id` = `core_site`.`id`)
LIMIT 1

Ama eğer eklersem:

ORDER BY `core_username`.`name` ASC

Hata tetiklenir. Bu sadece şu anda kullanıyorum belirli Web sunucusu üzerinde oluyor. Ben veritabanı indirmek ve benim localhost yanı sıra diğer sunucularda aynı şeyi deneyin eğer iyi çalışır. MySQL 5.0.77 sürümü.

Ne oluyor tmp tablo oluşturulması çok büyük ve MySQL olduğunu oldukça eminim bunu bilerek bobinleri as described in this blog post. Hala çözüm istiyor, ama değilim

CEVAP
15 EYLÜL 2010, ÇARŞAMBA


Bu hata geçici tablolar ile olur bazen

#126 - Incorrect key file for table '/tmp/#sql_64d_0.MYI'; try to repair it

/tmp klasör alanı dışında çalıştığı için olabilir. Bazı Linux yüklemeleri, /tmp kendi bölümü var ve fazla yer yok - büyük MySQL sorguları doldurur.

df -h \tmp kendi bölümü içinde olup olmadığını, ve ne kadar ayrılmış olduğunu kontrol etmek için kullanabilirsiniz.

Eğer alan kendi bölüm ve kısa ise, aşağıdakileri yapabilirsiniz:

(a) /tmp onun parition daha fazla boşluk (ya da yeniden tahsis etme veya ana bölüm - örneğin see here) taşıyarak, böylece değiştirin
(b) değişen MySql farklı bir bölüm, /var/tmp örn: different temp folder kullandığı config

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • HowtoDrawAndPaint

    HowtoDrawAnd

    24 EKİM 2010