Mysqld stürzt dauernd ab

fleckdalm
Posts: 2
Joined: 2013-03-25 13:29

Mysqld stürzt dauernd ab

Post by fleckdalm »

Hi!

Ich habe auf meinem Ubuntu VServer mysql installiert. Jedoch braucht der Daemon immer mehr und mehr RAM bis schließlich keiner mehr verfügbar ist. Dann stürzt er ab und startet nach ein paar Sekunden neu! Das geht ununterbrochen immer so weiter...
Der VServer hat 255 MB RAM von denen mysql fast alles verbraucht, und das obwohl nur 1 bis maximal 2 Besucher gleichzeitig auf (eine Wordpress) Website zugreifen. Ich glaube eher das da bei der Installation etwas schief gegangen ist, im Syslog sind mysql betreffend nämlich auch (ununterbrochen neue) komische Einträge:

Code: Select all

Mar 25 07:55:09 /etc/mysql/debian-start[17733]: This installation of MySQL is already upgraded to 5.5.22, use --force if you still need to run mysql_upgrade
Mar 25 07:55:09 /etc/mysql/debian-start[17745]: Checking for insecure root accounts.
Mar 25 07:55:09 /etc/mysql/debian-start[17750]: Triggering myisam-recover for all MyISAM tables
Mar 25 07:55:45 /etc/mysql/debian-start[19352]: Upgrading MySQL tables if necessary.
Mar 25 07:55:45 /etc/mysql/debian-start[19355]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Mar 25 07:55:45 /etc/mysql/debian-start[19355]: Looking for 'mysql' as: /usr/bin/mysql
Mar 25 07:55:45 /etc/mysql/debian-start[19355]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Mar 25 07:55:45 /etc/mysql/debian-start[19355]: This installation of MySQL is already upgraded to 5.5.22, use --force if you still need to run mysql_upgrade
Mar 25 07:55:45 /etc/mysql/debian-start[19366]: Checking for insecure root accounts.
Mar 25 07:55:45 /etc/mysql/debian-start[19371]: Triggering myisam-recover for all MyISAM tables


Diese Meldungen wiederholen sich die ganze Zeit, auch eine Neuinstallation von mysql hat leider nichts gebracht. Vor allem wenn man auf der Website oft F5 drückt oder mehrere gleichzeitig darauf zugreifen stürzt Mysqld sofort ab. Das ist doch nicht normal, also liegt nicht daran das mein VServer nur relativ wenig RAM hat, oder?
Am VServer läuft Ubuntu 12.04 LTS. Ich habe Mysql so installiert:

Code: Select all

sudo apt-get install mysql-server

und

Code: Select all

sudo apt-get install php5-mysql


Bei der Installation habe ich ein Masterpasswort angegeben und verwalte das ganze jetzt mit PHPMyAdmin.

Weiß jemand was ich da machen kann?

Danke,
Grüße Fleckdalm
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Mysqld stürzt dauernd ab

Post by Joe User »

Zunächst solltest Du mysql_upgrade durchlaufen lassen, dann solltest Du Wordpress temporär stilllegen damit myisam-repair ungestört die kaputten Tabellen reparieren kann.
Darüberhinaus bitte mal die my.cnf und die Ausgaben von mysqltuner.pl und tuning-primer.sh nach 24h-48h Laufzeit des MySQLd posten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

fleckdalm
Posts: 2
Joined: 2013-03-25 13:29

Re: Mysqld stürzt dauernd ab

Post by fleckdalm »

Danke für die Antwort!

Hier ist die my.cnf:

Code: Select all

 cat my.cnf
#
# 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
lc-messages-dir = /usr/share/mysql
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            = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#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.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# 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.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
#log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = include_database_name
#
# * 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!
#
# * 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

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/


mysql_upgrade (auch mit --force) habe ich schon mehrmals versucht, das hilft leider nichts.

Wordpress temporär stilllegen damit myisam-repair

Wie starte ich dieses myisam-repair? Ist es wirklich nötig Wordpress zu deaktivieren, es ist nämlich nicht so gut wenn meine Website dauernd down ist :-\

Hast du mit tunin-primer.sh das hier gemeint: http://www.html-forum.de/datenbankserve ... er-sh.html ?

Es ist echt komisch, wenn man ein paar mal F5 drückt ist die Datenbank sofort nicht mehr erreichbar. Wenn man dann ein paar Sekunden wartet geht es wieder, wenn man aber weiterhin F5 drückt startet mysqld gar nicht mehr von allein und ich muss den Service händisch neu starten...

Kann es theoretisch sein, dass das normal ist und mein VServer einfach nur zu wenig RAM hat?
Komisch ist auch, dass im Syslog oder in der mysql.err Datei nirgendst etwas von dem Absturz zu sehen ist, ich sehe es dann nur daran das der Prozess nicht mehr läuft.

Wäre es eigentlich möglich als Übergangslösung ein Skript zu machen, dass dauernd prüft ob mysqld läuft und ansonsten "service mysql restart" aufruft?

Danke,
Grüße Fleckdalm

Edit:
Ok, es war anscheinend wirklich der RAM!
Ich habe den RAM jetzt (auf 512 MB) erhöhen lassen und schaffe es jetzt nicht mehr mysql zum Absturz zu bringen. Allein durch drücken von F5 habe ich maximal 400 MB belegt. Aber das würde dann ja auch heißen wenn das jetzt mehrere User machen würde mysqld ja erst wieder abstürzen, oder?
Außerdem kommt es mir immer noch sehr komisch vor, dass die 256 MB vor der Neuinstallation ausgereicht haben...

Jedenfalls Danke für die Antwort! Falls noch wer was wegen der Auslastung weiß (also ob das normal ist...) könnt ihr es mir ja noch mitteilen;-)

Grüße
Fleckdalm
Last edited by fleckdalm on 2013-03-26 11:58, edited 2 times in total.
Top