2016-02-09 37 views
8

Bu sorunun birkaç kez sorulmuş olduğunu biliyorum ancak sorunum yeni oluşturduğum bir tabloyla gerçekleşiyor. İçinde sadece 10 sütun ve sadece 1 satır var.MySql alter tablosu kilitleniyor

Normal asılı problemden farklı olarak, bu çok miktarda veri içeren büyük bir tablo için geçerli değildir. Ve yine de kilitleniyor.

Bu

koşuyorum sql geçerli: Yeterince

ALTER TABLE `db`.`Search` 
ADD COLUMN `useremail` VARCHAR(256) NOT NULL COMMENT '' AFTER `id`; 

Basit ve henüz asılı ben Workbench ve Eclipse bırakma ve tüm java süreçleri ve bir mysqld sürecini silmeye çalıştık (50 dakika ve sayım.). Ama şans yok.

Mac OSX El Capitain üzerinde çalışıyorum. Bu sütunu masama nasıl eklerim?

+0

Bu sorguyu çalıştırırsanız "İşlem listesini göster" diyebilir ve "ALTER TABLE" db'.'Search' ADD COLUMN 'kullanıcıAdı (VARCHAR)' NIN NO NULL COMMENT '' SONRA '; – 1000111

+0

@SubrataDeyPappu Evet var. "State", "Tablo meta veri kilidini beklemede" dir. – Eddy

+0

Bu işlemin PID'si nedir? masada kaç tane kayıt var? – 1000111

cevap

19

Bu soruyu "mysql alter table hanging" yazarak buldum ve cevabın (yorumlarda) belgelenmesi gerektiğini düşünün.

Bir MySQL komutu çalıştırıyorsanız (bu durumda bir sütun eklemek için) ve beklenmedik bir şekilde asılıysa, örn. Tablodaki verilerin boyutu nedeniyle değil, daha sonra veritabanına karşı çalışan diğer işlemleri kontrol edin. Ben birkaç zombi olduğunu fark ettim

Waiting for table metadata lock 

: Başka bir müşteri ile sunucuya bağlı çalışan sorgu, sol ve My sorgu duruyordu

SHOW PROCESSLIST; 

daktilo ve bu mesajı state sütunda oldu Makinemin bağlantıları, onları (KILL xxxxxxId sütununda sayıdır) öldürdü ve sonra işlem hemen bitti.

+2

Eklemek için ... 'kill' komutu MySQL terminalinde çalıştırıldı, kapatmak için gerekli değildi. Teşekkürler! –

İlgili konular