Yeni CentOS kurulumu.
Büyük bir DB (2GB sql dosyası) ithalatı çalıştırıyordum ve bir sorunla karşılaştım. SSH müşterisi bağlantıyı kopardı ve ithalat donuyor gibiydi. MySQL oturum açmak için başka bir pencere kullandım ve ithalat, belirli bir 3M satır masasında sıkışmış, ölü gibi görünüyordu.
Bu yüzden denedim
DROP DATABASE huge_db;
15-20 dakika sonra, hiçbir şey. Başka bir pencerede yaptım:
/etc/init.d/mysqld restart
DROP DB penceresi mesajlandı: SUNUCU KAPATMASI. Sonra fiziksel sunucuyu yeniden başlattım.
MySQL'e tekrar giriş yaptım, kontrol ettim ve db hala oradaydı.
DROP DATABASE huge_db;
tekrar ve yine 5 dakika bekliyorum.
Bir kez daha, yeni kurulum. huge_db
(Sistem DBS dışında) sadece db. Yemin ederim, bu kadar önce ve sonra db'leri bu kadar büyük düşürdüm, ama belki yanılıyorum.
Veritabanını başarıyla düşürdüm. 30 dakika gibi bir şey aldı. Ayrıca, mysqldump içe aktarmanın öldüğünü düşündüğümde yanıldığımı düşündüğümü de unutmayın. Terminal bağlantısı koptu, ancak işlemin hala devam ettiğini düşünüyorum. Büyük olasılıkla ithalat orta masasını (3M sıra tablosu) ve muhtemelen db boyunca yolun 3/4'ünü öldürdüm. "Top" un daha fazla kullanması gerektiğine benzeyen belleklerin sadece% 3'ünü kullanarak mysql göstermesi yanıltıcıydı.
DB'nin bırakılması 30 dakika sürdü, bu yüzden yine sunucuyu yeniden başlatmam gerekmeyebilirdi ve muhtemelen DROP'un bitmesini beklemiş olabilirdim, ancak mysql'in DROP sorgusu almak için nasıl tepki vereceğini bilmiyorum. Aynı db, mysqldump ile aktardığı.
Yine de, soru hala devam ediyor, neden tek yapmanız gereken tüm db dosyalarını silmek ve DB'ye tüm referansları info_schema'dan kaldırmak olduğu zaman neden 2GB'lık bir veritabanını DROP'a çekmek 30 dakika + alıyor? Problem ne?
DROP DATABASE
komutu tüm bağlantıların kapatılıncaya kadar sunucu devam etmeyecektir.