mySQL, Dump veri girişinde hata, Error 1044, Lock Tables

Yazan: Ansugo | Tarih 14 Ocak 2006 | Yorum  Yorum Yok
BerbatKötüOrtaGüzelHarika Henüz puan verilmemiş
Loading ... Loading ...

Bugün sabah sularında irc’de (irc.freenode.net) bir kişiye yardım etmeye çalışırken öğrendiğim bir durum.

mysqldump aracısı kullanarak veritabanınızı yedeklediniz. Ancak verileri komut satırından veya phpmyadmin ile yüklemeye çalışırken şöyle bir hata alıyorsunuz :

#1044 - Access denied for user: 'kullanici_adi@localhost' to database 'veritabanim'

Oysaki siz o veritabanında tablo yaratabiliyorsunuz. İlginç değil mi?

Biraz araştırmadan dump dosyasında hata veren satırın şöyle olabileceğini bulduk :

/*!40000 ALTER TABLE `benim_tablom` DISABLE KEYS */;
LOCK TABLES `benim_tablom` WRITE;

Biraz araştırma yaptıktan sonra manual’da bir parça buldum.

As of 4.0.2, to use LOCK TABLES you must have the LOCK TABLES privilege and a SELECT privilege for the involved tables. In 3.23, you must have SELECT, INSERT, DELETE, and UPDATE privileges for the tables.

Türkçe olarak diyor ki;

4.0.2′den itibaren LOCK TABLES kullanmak için kullanıcının LOCK TABLES yetkisine sahip olması ve o tablo için SELECT yetkisine sahip olması gerekir. 3.23′te ise bahsedilen tablolar için SELECT, INSERT, DELETE, UPDATE yetkisine sahip olunması gerekir.

Örnek olay şöyle olabilir : mysqldump ile verilerinizi yedeklemişsinizdir. Sonra yeni bir sunucuya taşınmışsınızdır. Bu sunucuda phpmyadmin ya da komut satırından dump dosyasını yüklemek istiyorsunuzdur. Ama sürekli 1044 Access denied hatası alıyorsunuzdur.

Bunun sebebi şu olabilir : sunucunuz 4.x sürümüdür ve size hesabı açan admin LOCK TABLES yetkisini kullanıcı adınıza vermemiştir. Haliyle siz dump dosyasını yüklemek istediğinizde access denied (erişim engellendi) hatası alıyorsunuzudur. Çünkü lock tables yetkisi olan bir kullanıcı değilsiniz.

Çözümü basit : Dump dosyasından LOCK TABLES satırlarını tümden silin.

Zaten 3.23.xx’deki veritabanındaki user tablo yapısına baktığınızda tablo da lock tables ile alakalı bir kolon olmadığını, ama 4.x’teki aynı tablo’da böyle bir yapı olduğunu, sadece kullanıcıya INSERT, DELETE, UPDATE, SELECT yetkisi vermenin yetmeyeceğini görebilirsiniz.

Yazdır Yazdır | 170 Görüntülenme | Kategori: Veritabanları & SQL | Trackback  Geri İzleme
Etiketler  Etiketler: , ,

Benzer Yazılar


Yorum Yap


(gerekli)

(gerekli,yayınlanmaz)




XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>