'Kullanım' sonrasında MySQL veritabanı donuyor


17

Son zamanlarda oldukça aptalca bir hata yaptım ve Ubuntu kurulumumu bozdum. Çözmek için, canlı bir cd ile önyükleme yaptım ve veritabanı dosyalarını kopyaladım. Ancak, şimdi eski kurulumdan yeni bir klasöre kopyaladım, "veritabanı_adı kullan" yazdığımda bu sadece donuyor:

mysql> use my_database_name;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Ve sonra terminali vermeden donar.

Yanıtlar:


28

Oturum açtıktan sonra ilk "kullan" komutunda, MySQL veritabanı, tablolar ve sütunların adını otomatik tamamlama için tarar. Birçok db varsa, tablolar biraz zaman alabilir.

Bundan kaçınmak için, istemcinizi -A seçeneğiyle başlatın (veya --no-auto-rehash)

mysql -uroot -p -A

Tamamen devre dışı bırakmak istiyorsanız, devre dışı_auto_rehash değişkenini my.cnf'nize ([mysql] bölümünde) de ekleyebilirsiniz . Bu değişiklik, yeniden başlatma gerektirmez (sunucu değil, değişkendir).


"bir süre" ~ 2.5GiB veritabanı için bir günden fazla olabilir mi, yoksa bu mantıksızca uzun mu?
lucidbrot

2

Benim durumumda, "Tablo bilgilerini okuma" makul olmayan bir zaman alıyordu. Koştuğumda mysql -e 'show processlist'"asılı" işlemin "Tablo meta veri kilidi bekleniyor" olduğunu keşfettim. create table from select ...Başka bir yerde çalışan formun uzun süredir devam eden bir sorgusu vardı , bu yüzden bir düzeyde mantıklıydı , bu yüzden bir düzeyde bu yeni tablo oluşturuluncaya kadar tablolarla ilgili meta veriler kullanılamayacağını anlayabiliyordum. (Otomatik tamamlama taramasının, eğer mümkünse meta veri sorgusundan herhangi bir "eksik" tabloyu atlaması tercih edilir.)


0

📌

Ne zaman diğer sistemden tüm veritabanını kopyalamak:

/ Var / lib / mysql / *

Sen may mysql / var / lib / mysql / *: chown -R mysql ve hizmeti tekrar başlatın.

☝ bu sorunumu çözdü 👊


2
DBA Stack Exchange'e hoş geldiniz! Bunu bir teklif olarak biçimlendirdiniz; bu çözümü gerçekten başka bir yerden aldıysanız, kaynağı sağlamanız gerekir . Değilse, lütfen biçimlendirmeyi kaldırın.
Glorfindel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.