Mysql başlatılamadı


4

Bir Ubuntu 12.04 LTS Sanal Makinesi kullanıyorum. Geçen hafta, VM beklenmedik bir şekilde durdu, şimdi mysql VM'de başlamayacak. Bu iki olay ilişkili olabilir, olmayabilir.

Bağlanmaya çalıştığımda:

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

Sonra:

$ sudo service mysql start
start: Job failed to start

Ve

$ dmesg

[ 1838.218400] type=1400 audit(1374633238.253:50): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18473 comm="apparmor_parser"
[ 1838.358656] init: mysql main process (18477) terminated with status 1
[ 1838.358695] init: mysql main process ended, respawning
[ 1839.269303] init: mysql post-start process (18478) terminated with status 1

Ve

$ service mysql status
mysql stop/waiting

Sanırım bu başladığında mysql çöküyor:

$ sudo mysqld start
130723 21:51:24  InnoDB: Assertion failure in thread 3064211200 in file fut0lst.ic line 83
InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
02:51:24 UTC - mysqld got signal 6 ;

El kitabına göre veri dizinine (/ var / lib / mysql) gittim ve şunu çalıştırdım:

myisamchk --silent --force */*.MYI

Sonra:

$ sudo mysqld
...
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: for more information.
...

Veritabanım bozuk mu? Kurtarmak için ne yapabilirim? MySQL yeniden yüklensin mi? Daha az sert bir şey mi var? Veritabanını kaybetmekle iyiyim, sadece çalışan bir sistem istiyorum.


Innodb tablolar bozuk gibi görünüyor.
John Naegle,

1
Görünüşe göre veritabanım bozulmuş ve MySQL'in başlaması engellendi. El kitabına göre, /etc/mysql/my.cnf dosyasına şunu ekledim: [mysqld] innodb_force_recovery = 6. Sunucuyu yeniden başlattığımda, çökmeden başladım.
John Naegle

Ah tamam, bilmek güzel.
CS

Veritabanım henüz kullanılabilir görünmüyor - ama en azından sorunu bildiğimi düşünüyorum. MySQL'i yeniden yükleyeceğim ve sorunun çözülüp çözülmediğine bakacağım.
John Naegle,

mysql'i --purge seçeneğiyle silmeyi ve sıfırdan yeniden yüklemeyi deneyin.
l1zard

Yanıtlar:


1

Mysqld.sock dosyasını yeniden başlatmak hile yapabilir.

 cd /var/run/mysqld
 sudo touch mysqld.sock
 sudo chown mysql:mysql mysqld.sock
 sudo chmod 1777 mysqld.sock
 sudo service mysql restart

Değilse, lütfen aşağıdakileri yapın ve sonuçları gönderin:

 cd /var/run/mysqld
 ls -al

İşe yaramadı. "sudo service mysql yeniden başlat" - "stop: Bilinmeyen örnek: start: İş başlatılamadı". / var / run / mysqld "rwxrwxrwt 1 mysql mysql var 0 Tem 23 22:01 mysqld.sock"
John Naegle

Boşver, yukarıdaki yeni bilgilerinizin ışığında, sorun bu değil.
CS

0

Bozuk bir MySQL kurulumu bazen güvenli moddan başlayarak çalışabilir.

Önemli MySQL'i güvenli modda çalıştırmak, güvenlik ayarlarınızı düşürür ve potansiyel olarak başkalarının verilerinize erişmesine izin verir.

Güvenli modda başlatmak için şunu çalıştırın:

sudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables

Masalarınızın aslında bozuk olduğunu tespit ederseniz, düzeltmek için atılabilecek birkaç adım vardır. İşte iyi bir öğreticinin bağlantısı. http://tech.amikelive.com/node-36/mysql-50-recovering-crashedcorrupted-innodb-database/

http://www.mysqlperformanceblog.com/2008/07/04/recovering-innodb-table-corruption/


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.