it-swarm-tr.com

MySQL hizmeti başlatılamıyor / durdurulamıyor

MySQL çalışırken Debian Etch web sunucusunu devralmak.

Ben genellikle msyql kullanarak başlatmak, durdurmak ve yeniden başlatın:

/etc/init.d/mysql yeniden başlatma

Bu kurulumda bir nedenden dolayı aşağıdakileri alıyorum:

: ~ # /etc/init.d/mysql durağı

MySQL veritabanı sunucusunu durdurma: mysqld başarısız oldu!

Mysql işlemi iyi çalışıyor:

:~# ps aux | grep mysql 
root      2045  0.0  0.1   2676  1332 ?        S    Jun25   0:00 /bin/sh /usr/bin/mysqld_safe
mysql     2082  0.6 10.7 752544 111188 ?       Sl   Jun25  18:49 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root      2083  0.0  0.0   1568   504 ?        S    Jun25   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
root     11063  0.0  0.0   2856   716 pts/0    S+   17:29   0:00 grep mysql

Eminim bunu yapmanın gerçekten kolay bir yolu var ama neler olduğunu anlamak istiyorum. Tipik bir yol benim için neden çalışmıyor?

GÜNCELLEME DÜZENLE güncelleme olarak:

JBRLSVR001:/var/log/mysql# mysqladmin shutdown
JBRLSVR001:/var/log/mysql# dpkg --list mysql\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed 
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                                         Version                                      Description
 +++-============================================-============================================-========================================================================================================
un  mysql-client                                 <none>                                       (no description available)
un  mysql-client-4.1                             <none>                                       (no description available)
ii  mysql-client-5.0                             5.0.32-7etch8                                mysql database client binaries
ii  mysql-common                                 5.0.32-7etch8                                mysql database common files (e.g. /etc/mysql /my.cnf)
un  mysql-common-4.1                             <none>                                       (no description available)
ii  mysql-server                                 5.0.32-7etch8                                mysql database server (meta package depending on the latest version)
un  mysql-server-4.1                             <none>                                       (no description available)
ii  mysql-server-5.0                             5.0.32-7etch8                                mysql database server binaries

mysqladmin kapatma çalışıyor ama hala neden /etc/init.d/mysql komutları çalışmıyor merak ediyorum.

28
Derek Organ
mysqladmin shutdown

sunucuyu kapatmak için çalışmalıdır.

İki olası olasılık görüyorum:

  1. MySQL'in bir sorunu var ve bir nedenle kapanmayı reddediyor.
  2. Önceki yönetici tuhaf bir şey yaptı. Ya init.d betiğini değiştirdi ya da MySQL'i yüklemek için Debian paketlerini kullanma zahmetine girmedi.

Nedir dpkg --list mysql\* söyle?

/Var/log/mysql.err ne diyor? Veya diğer mysql günlükleri?

Düzeltme:

Yani mysqladmin shutdown çalıştı?

Buna göre, mysql-server paketi kurulur (mysql-server-5.0; mysql-server paketi muhtemelen sadece bir saplamadır). Yani onlar üzerine kurulmuş olabilir mi? Koşu debsums mysql-server-5.0 size daha fazlasını söyleyebilir. dpkg --listfiles mysql-server-5.0 de yardımcı olabilir ...

Aslında /etc/init.d/mysql dosyasında neler var? Paketin bu belirli sürümünü kontrol etmedim, ancak mysqladmin shutdown ... Belki şanslısın ve sadece bunu kırdılar ...

25
freiheit

Bu neden oluyor

Bir mysql alma işlemi gerçekleştirdiğinizde ve mysqldump -A yedeklemesinden ne zaman geri yükleme yapacağınız gibi mysql veritabanının üzerine yazarsanız bu yaygın bir sorundur.

Bu iyi bir şey: muhtemelen tüm mysql kullanıcılarınızı, izinlerinizi vb. Yedeklemek istiyorsunuz - ancak mysql'yi temiz bir şekilde kapatmak için kullanılan debian-sys-maint kullanıcısı gibi şeylerle hasara yol açabilir.

Bu yeni veritabanı muhtemelen hem kök parolayı hem de debian-sys-maint parolasını değiştirse de, elbette /etc/mysql/debian.cnf dosyasında beklenen debian-sys-maint parolasını otomatik olarak değiştirmez. Aslında, o dosyayı da yedeklemediyseniz, muhtemelen bu parolanın artık ne olduğunu bilmiyorsunuzdur!

MySQL kök parolasını sıfırlama (isteğe bağlı)

Her şey sırayla. MySQL kök parolası eski ve yeni sunucular arasında farklıysa, düzeltmek için MySQLmin kullanabilirsiniz:

mysql -p -u root password 'newpassword'

Ancak, apt-get mysql-server'ı yüklediğinizde, muhtemelen yeni mysql root parolasını girmeniz istenir ve muhtemelen daha önce kullandığınız şifreyi kullandınız.

debian sys maint şifresini düzeltin.

Şimdi debian yeni sunucuya yüklediğinizde debian sizin için oluşturulan debian sys maint parolasına bakın. (Sudo'ya ihtiyacınız var, çünkü bu oldukça korumalı bir dosya olmalı.)

Sudo cat /etc/mysql/debian.cnf

Şimdi, yukarıda ayarladığınız kök parolayı kullanarak mysql'de oturum açın:

mysql -p -u root   # use your new password when prompted

Debian-sys-maint kullanıcısının parolasını sıfırlayın ve ayrıcalıkları temizlemeyi unutmayın:

>  SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('samepassword');
>  FLUSH PRIVILEGES;
>  QUIT

Çalıştığından emin olmak için test edin:

Sudo /etc/init.d/mysql restart

Hızlı ipucu

Sunucuyu kaldırmak zorunda kalmadan sunucunun kök parolasını sıfırlamanız gerekirse, bu kullanıcı hesabının bunu yapma yetkisi vardır - sadece debian.cnf dosyasını doldurun ve bu kullanıcı ile oturum açın. N.B. Bu kullanıcı hesabını root gibi koruyun.

22
Jamieson Becker

2 ipucu daha:

sh -x /etc/init.d/mysql restart

Bu size init betiği tarafından yürütülen komutları gösterir.

paket debsum'larını yükleyin ve hangi paketlerin değiştirildiğini test edebilirsiniz (doğrulama, RPM için de mevcuttur, ancak IMHO daha iyi çalışır).

6
elcuco
pkill mysql

kesinlikle çalışacak

5
Jonathan

Paketin biraz garip olduğunu varsayarsak sorun pid dosyası olabilir. Yeni paketler veya derlenmiş yükleme/var/run/mysql/veya herhangi bir şey için pid dosyası için Debian üzerinde standart olan veya init komut dosyası mysqld.pid dosyasını başka bir yerde arıyor şüpheli. İnit/pid dosyası uyumsuzluğunu düzeltirseniz, işler muhtemelen işe yarayacaktır.

2
kashani

Mysql kapatma komut dosyası, /etc/mysql/debian.cnf adresinden kullanıcının parolasını okuyarak 'mysqladmin shutdown' komutunu çalıştırmak için debian-sys-maint kullanıcısını kullanır. Bu dosyanın var olduğunu ve bu kullanıcı olarak mysqladmin shutdown çalıştırabildiğinizi kontrol etmelisiniz.

2
theotherreceive

Sorunuzdaki yorumu takip etmek için tam bir cevap yazacağım:

Sorun, varsayılan soketin /tmp/mysql.sock MySQL kaynağı ile ve /var/run/mysqld/mysqld.sock ile Debian ikili dosyaları.

Çözüm soket yolunu düzeltmektir in /etc/mysql/debian.cnf, iyi socket=. Ya da saklayın, ama sonra /etc/mysql/my.cnf.

İşte bunu nasıl öğrendim: in /etc/init.d/mysql "başarısız" mesajı olduğunda, şu satırın var:

echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug

Bu beni $MYADMIN ping, hangisi mysqladmin --defaults-file=/etc/mysql/debian.cnf ping. Bu komutu çalıştırmak şu şekilde biter:

/ usr/bin/mysqladmin: 'localhost' adresindeki sunucuya bağlanılamadı

hata: 'Yerel MySQL sunucusuna' /var/run/mysqld/mysqld.sock soketi ile bağlanamıyor '(2)'

MySQL'in çalışıp çalışmadığını ve '/var/run/mysqld/mysqld.sock' soketinin mevcut olduğunu kontrol edin!

Bu yüzden /etc/mysql/debian.cnf ve bunun kötü soket olduğunu öğrendim.

1
Yvan

"Pkill mysql" kullanımı, özellikle "pkill -9" olarak çağrıldığında da verilerinizi kaybedecektir :(

Ayrıca init komut dosyasında sorunun ne olabileceğini görmek için 'sh -x' kullanmanızı öneririm ve ayrıca MySQL (/ var/log/mysql hata günlüklerinde de göz atabilirsiniz. ) veya /var/lib/mysql, config'e bağlı olarak), gerçekten uzun süren bir soruna veya başka bir şeye takılıp takılmadığını görmek için henüz.

1
nixgeek

Teknik olarak şu şekilde bitirebilirsiniz:

pkill -9 mysqld

Ama veri kaybedebilirsiniz?

Http://www.serverfault.com adresinden birine sormak daha iyi olabilir

1
John Kurlak

aşağıdaki komutu kullanın:

$ mysqladmin kapatma

bu sizin durumunuzda/usr/bin dizininde bulunmalıdır.

0
Masood Syed

debian üzerinde mysql (ve diğer birçok hizmet) durdurmaya başlamak için süper kullanıcı olmanız gerekir.

Zaten olup olmadığınızdan emin değilsiniz ... değilse, aşağıdakilerden birini yapmanız gerekir

  • root olarak giriş yap
  • /etc/init.d/mysql yeniden başlatma komutunuzdan önce Sudo'yu koy (sizden şifrenizi ister ve sudoers grubunda olmanız gerekir)
0
benlumley