MySQL başlamıyor!


12

Komut satırından MySQL'e giriş yapmaya çalışırken bu hatayı alıyorum:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Bu, MySQL'in henüz başlatılmadığı anlamına geliyor. Bu yüzden başlatmaya çalışıyorum:

sudo /etc/init.d/mysql start

ve şu mesajı alıyorum:

* Starting MySQL database server mysqld [fail] 

Nereye bakarım / MySQL'in başlamasını sağlamak için ne yapmalıyım? Ubuntu 8.04 çalıştırıyorum ve apt-get üzerinden MySQL yükledim. Başlamayı başardım ve birkaç kez kullandım, bu yüzden neden çalışmayı bıraktığını bilmiyorum.

Güncelleme: sudo /etc/init.d/mysql durumunu çalıştırırken şu mesajı alıyorum:

* MySQL is stopped.

Güncelleme # 2: Günlük dosyalarım (/var/log/mysql.log & /var/log/mysql.err) boş (bunlar doğru olanlarsa)


sudo /etc/init.d/mysql status
emgee

Yanıtlar:


10

Ubuntu 12.04'te /etc/mysql/my.cnf dosyasında arabellek boyutlarını değiştirdikten sonra aynı sorunu yaşadım, sanırım biraz taşındım. Her neyse onları varsayılan ayara geri döndürmeye çalıştıktan sonra MySQL yine de başlamazdı.

Çözülmesi için birkaç farklı yöntem denedim, /var/run/mysql/mysql.sock eksik olduğunu fark ettim. Bu bir sorun olabilir, bu yüzden orada kontrol edebilirsiniz ve eğer eksikse aşağıdakileri yaparak değiştirebilirsiniz:

sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock

Bu did DEĞİL benim için sorunu çözmek! Ama bazıları için olabilir.

Yapmam gereken MySQL'i tamamen yeniden kurmaktı, bunu yapmak için sudo komutunu kullanmanız gerekecek. MySQL'i tamamen kaldırma ve yeniden yükleme adımları aşağıdaki gibidir:

MySQL'i Kaldır

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common

İsteğe bağlı olarak değiştirerek, yetenek kullanabilir apt-get --purge ile yetenek

Temizlemek

sudo apt-get autoremove
sudo apt-get autoclean

MySQL dizinini kaldır

sudo rm -rf /etc/mysql

MySQL'i yükleyin

sudo apt-get install mysql-server mysql-client

MySQL şimdi çalışıyor olmalıdır, aşağıdakileri yaparak bunu kontrol edebilirsiniz:

sudo service mysql status

Görmelisin

mysql start/running, process xxxxx

Umarım bu yardımcı olur ve bunu hala kullanılabilir tüm veritabanlarımı ve tablolarımı yaptıktan sonra ekleyebileceğimi düşündüm, ancak bu veritabanları için kullanıcıları ve şifreleri yeniden oluşturmak zorunda kaldım.

Not: php için mysql uzantınız varsa, bunu da yeniden yüklemeniz gerekir.

sudo apt-get install php5-mysql

Bu benim için çalıştı ama bunu değiştirmek zorunda kaldım: sudo touch /var/run/mysqld/mysqld.sockve ben bunu sonuna kadar öğrendim /var/log/syslog (örneğin mysqld değiştirmek)
Programster

Öyle mi /var/run/mysqldyoksa /var/run/mysql?
CMCDragonkai

çorap dosyasına dokunmak kötü bir fikirdir - normal bir dosya oluşturduysanız, gerçekten bir soket olduğunda, bu özel bir dosya türüdür.
Criggie

3

UYARI: Bu tehlikelidir, MySQL'iniz güvenli OLMAYACAKTIR ve herkes tablolarınızı bağlayamaz, düzenleyemez vb. Sunucunuzu bu komutla çalışır halde bırakmaz.

Güvenli modda başlatmayı deneyin: /usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables

Bu işe yararsa, information_schema veya mysql tablolarınızla ilgili sorunlar olabilir. Eğer işe yaramazsa, kurulumunuzda bir sorun var demektir.


1
Bu iyidir, syslog'da ayrıntılı hatalar verir. Komut değişti, Ubuntu sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
12.04'te

3

Günlük dosyalarınızı diğer yanıtlardaki gibi kontrol edin. Ayrıca, yeterli (veya herhangi bir disk alanınız) olduğunu kontrol edin. MySQL bu şekilde boş bir bölümde davranabilir.

df -h

Bu değilse, MySQL'in sunucuda hata ayıklama ile ilgili belgelerine göz atın . Onların myisamchk(MyISAM kullanıyorsanız) özellikle yararlıdır.


3

Ayrıca son zamanlarda ubuntu güncelledikten sonra bu sorunu var. Sorunun tam olarak ne olduğundan emin değilim. Şu an için çalışan mysql çalıştırmak için çalışan bir worakround yapmak oldu:

sudo aa-complain /etc/apparmor.d/*mysql*

Bu, apparmor'ın mysql'in çalışmasını durdurduğunu ve günlüklerin neden de boş olduğunu açıkladığını göstererek çalışmasını sağlar: mysql'in çalışmasına izin verilmedi.

Şimdiye kadar bundan bir "şikayet" olmadığı /var/log/apparmorve kern.log'daki tek denetim girişi profili değiştirmekten şikayet moduna geçmekten garip bir sorun olmaya devam ediyor .

Bunu yaparken /etc/apparmor.d/local/usr.sbin.mysql, aa-şikayet komutunun bu dosyayı bulamamaktan şikayet ettiği için (boş) bir dosya da eklediğimi unutmayın .


Çok teşekkür ederim! Saçlarımı sökmeye yaklaştıktan sonra, sonunda düzeltildi.
Olathe

3

512MB Digital Ocean damlacıkla da aynı sorunu yaşadım.

Yetersiz bellek nedeniyle ortaya çıktı.

Acil bir çözüm, hafızayı boşaltmak için diğer hizmetleri yeniden başlatmaktır.

sudo service apache2 restart

Sonra umarım, yeterli hafıza ile, mysql yeniden başlatmak gerekir

sudo service mysql restart

Uzun vadeli çözüm daha fazla RAM almak veya takas belleği oluşturmaktır .


2

Günlük dosyalarınıza bir göz atın. En azından Debian'da, mysql * günlüklerini alırsınız /var/log.


3
mysql.err ve mysql.log her ikisi de boş
Andrew

1

Aynı sorun vardı, çözüm bana yüzüme bakıyordu. Sürücü doluydu. Hiçbir günlük almak çünkü onları yazmak için hiçbir yer yoktur .....


0

Aynı sorun beni bir PPA'dan mysql 5.6 yüklü bir Ubuntu 12.04 Dijital Okyanus VPS'de rahatsız etti. Belirtileri, mysql.sock dosyasının /var/run/mysqld/mysql.sockkaldırılıp yeniden oluşturulmadığı için mysql her güncellendiğinde veya sunucu yeniden başlatıldığında aşağıdaki komutları manuel olarak çalıştırmak zorunda kaldım:

sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock

Bu Kyle C'nin cevabından geldi (mysql yerine mysqld hariç). Sonunda normalde bir sudo apt-get install mysql-serverkomut gerçekleştirdiğinizde gelen mysql 5.5'e düşürdüm . Ancak bu doğru değildi, işte yapmam gereken şey:

# Manually get mysql running if it is not
sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock
sudo service mysql start

# take a dump of all databases 
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql

# Completely remove mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)

# remove a flag that would prevent the installation
# because it is seen as a downgrade
sudo rm /var/lib/mysql/debian-5.6.flag

# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*

# Install mysql
sudo apt-get install mysql-server mysql-client mysql-common php5-mysql

# manually update the all-databases.sql file and 
# remove all STATS_PERSISTENT clauses on table creation statments

# re import the databses
mysql -u root -p < all-databases.sql

# restart apache
sudo service apache2 restart

# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES

Umarım bu aynı acıya sahip başka birine yardımcı olur.


0

Bunun başkalarına yardımcı olabileceğini düşünün ... işte burada.

MySQL 5.5'imi (Ubuntu'nun varsayılanı) yeni 5.7'ye
taşımak istedim (yeni yerel JSON türüyle oynamak istedim)

En son sürümü kurmak için talimatları takip ettim ....
ama MySQL başlamak istemedi.

Aramaya biraz zaman harcadıktan sonra şu satırı buldunuz /var/log/mysql/errors.log:

unknown variable 'key_buffer=16M'

ve bu /etc/mysql/my.cnf, yükseltme sırasında, tutmayı seçtiğim bir şey.

Bundan sonra, oldukça kolay:
benim aynı dizinde bulunan sürüm my.cnfile değiştirildi my.cnf.dpkg-dist...

Sonra koşmak zorunda kaldı

sudo mysql_upgrade -u root -p sudo service mysql restart

ve şimdi MySQL yeniden çalışıyor ve çalışıyor


0

Neyin yanlış olabileceğine dair başka bir varyasyon buldu. Ben veri dizini taşındı ve ben hiçbir çıkış olmadan da başarısız mysql kullanıcı için dizini chown unuttum çıkıyor. Açıkçası yanlış, ancak hata mesajı eksikliği her önemsiz sorunu bulmak zor hale getirir.

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.