PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL-Server startet nicht mehr, obwohl alles gestern noch ging



Odin3011
13.07.08, 10:23
Hallo,
auf meinem Server läuft Debian Etch und gestern lief mein Web-Server noch einwandfrei (Apache 2.0, PHP5, MySQL5), aber als ich meinen Server heute morgen startete, lief MySQL nicht. Nachdem ich manuell MySQL starten wollte kam folgender Fehler:

server:/etc/init.d# ./mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

Der selbe Fehler kommt beim Booten, nur das da noch dabei steht, dass er irgendwelche Probleme mit der mysql.sock hat. Ich habe den Fehler gerade nicht vor mir, es ist aber ein bekannter Fehler der mit der mysql.sock und dem mysqlport 3306 zu tun hat. Da ich aber im Internet nur andere Fehler gefunden habe, und nicht den, konnte ich mir leider noch nicht selber helfen.
PS: in der /var/log/mysql.err und in der /var/log/mysql.log steht gar nix drinne, dateien sind leer!

EDIT:
Eben habe ich in der /etc/my.cnf geschaut: Der Socket ist auf /var/tmp/mysqld.sock gelegt, und dort ist der Ordner LEER!
Außerdem ist der MySql Server ordner auf /usr/local/mysqld gelegt, aber der Ordner existiert nicht!
Ebenso der mysql-ordner soll /usr/local/mysqld/var sein, aber mysqld existiert nicht.
Und wo ist dann der richtige Pfad?

Nach Suche nach mysql habe ich folgende Ordner gefunden:


server:/etc# find / -iname "*mysql*" -type d
/var/lib/mysql-cluster
/var/lib/mysql
/var/lib/mysql/mysql
/var/run/mysqld
/var/log/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/perl5/Mysql
/usr/lib/perl5/DBD/mysql
/usr/share/mysql-common
/usr/share/mysql
/usr/share/mysql/mysql-test
/usr/share/doc/libmysqlclient15off
/usr/share/doc/mysql-common
/usr/share/doc/mysql-server
/usr/share/doc/libdbd-mysql-perl
/usr/share/doc/mysql-client-5.0
/usr/share/doc/mysql-server-5.0
/etc/mysql

und in der /etc/mysql/my.cnf steht:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
#log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

#
# * NDB Cluster
#
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
#
# The following configuration is read by the NDB Data Nodes (ndbd processes)
# not from the NDB Management Nodes (ndb_mgmd processes).
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1


#
# * IMPORTANT: Additional settings that can override those from this file!
#
!includedir /etc/mysql/conf.d/


Hier habe ich noch etwas:



server:/usr/share/mysql# tail /var/log/syslog
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [Note] Crash recovery finished.
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/host.frm'
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/host.frm'
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect information in file: './mysql/host.frm'
Jul 13 14:17:40 localhost mysqld_safe[3167]: ended
Jul 13 14:17:54 localhost /etc/init.d/mysql[3302]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jul 13 14:17:54 localhost /etc/init.d/mysql[3302]: ^G/usr/bin/mysqladmin: connect to server at 'localhost' failed
Jul 13 14:17:54 localhost /etc/init.d/mysql[3302]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Jul 13 14:17:54 localhost /etc/init.d/mysql[3302]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jul 13 14:17:54 localhost /etc/init.d/mysql[3302]:

UzumakiNaruto
13.07.08, 19:15
whereis mysqld
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.gz


hast du evtl. alte mysql-daten geladen?? von einem mysql 4 server oder so??

Odin3011
13.07.08, 20:59
whereis mysqld
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.gz


hast du evtl. alte mysql-daten geladen?? von einem mysql 4 server oder so??

nein, das habe ich nicht. Ich habe einfach gestern Wordpress etwas angepasst (Layout) und habe heute morgen meinen Server wieder gestartet, und ab da war dann der Fehler.

corresponder
14.07.08, 03:51
hi,

und er läuft sicher nicht schon?
es gibt kein altes pid file?


gruss

c.

marce
14.07.08, 05:51
diese Zeilen lassen eigentlich vermuten, daß da beim Runterfahren evtl. was ordentlich schief gegangen ist - oder bei den Anpassungen, die Du gemacht hast etwas drin war, was erst nach dem Neustart der DB zum tragen kommt (Rechte, User, ...)

Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/host.frm'
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './mysql/host.frm'
Jul 13 14:17:40 localhost mysqld[3156]: 080713 14:17:40 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect information in file: './mysql/host.frm'


Aber verifiziere erst mal das mit dem lock-File - und evtl. einen Repair / TableCheck durchführen.

Im schlimmsten Fall Backup einspielen oder die DBs neu erstellen lassen.