MySQL produziert nach Update 4->5 Deadlocks
Posted: 2006-04-21 22:21
Hallo Leute,
ich habe folgende Situation:
Ich habe gerade meine Datenbank von MySQL 4.1 auf MySQL 5 geupdatet. Habe meine Konfiguration erstmal unverändert gelassen (siehe weiter unten) und einfach den mysql-server neugestartet. Ging alles unproblematisch und die Version hat auch nacher gestimmt. Probleme traten nach ca. 5 Minuten auf: Der Server hat mit den üblichen MAX_CONNECTIONS den Betrieb verweigert. Ein Blick in die Process-Liste hat ein komisches ergebniss gegeben:
Ein INSERT in eine MyISAM-Tabelle mit STATE="update" und danach 100erte SELECTS auf eben diese Tabelle mit dem STATE="Locked". Aus irgendeinem Grund wird das INSERT nicht fertig und macht somit alles andere kaputt.
Das Problem tritt immer wieder auf, also nach jedem Restart. Auch mit der Standart-Debian-Konfiguration kommt es zu dem Fehler. Die Tabellen bei denen das Problem auftreten variieren. Ich setzte überhaupt keine Lock's oder Transactions ein, überlasse das alles dem MySQL-Server. Client-Anwendung ist ein PHP-Forum.
Hardware-Probleme kann ich ausschließen, es lief schließlich auf MySQL4.1 alles Problemlos. Die Festplatte ist auch nicht voll, das habe ich als erstes geprüft.
Konfiguration:
Wer hat mir einen Tipp?
Danke
TO
ich habe folgende Situation:
Ich habe gerade meine Datenbank von MySQL 4.1 auf MySQL 5 geupdatet. Habe meine Konfiguration erstmal unverändert gelassen (siehe weiter unten) und einfach den mysql-server neugestartet. Ging alles unproblematisch und die Version hat auch nacher gestimmt. Probleme traten nach ca. 5 Minuten auf: Der Server hat mit den üblichen MAX_CONNECTIONS den Betrieb verweigert. Ein Blick in die Process-Liste hat ein komisches ergebniss gegeben:
Ein INSERT in eine MyISAM-Tabelle mit STATE="update" und danach 100erte SELECTS auf eben diese Tabelle mit dem STATE="Locked". Aus irgendeinem Grund wird das INSERT nicht fertig und macht somit alles andere kaputt.
Das Problem tritt immer wieder auf, also nach jedem Restart. Auch mit der Standart-Debian-Konfiguration kommt es zu dem Fehler. Die Tabellen bei denen das Problem auftreten variieren. Ich setzte überhaupt keine Lock's oder Transactions ein, überlasse das alles dem MySQL-Server. Client-Anwendung ist ein PHP-Forum.
Hardware-Probleme kann ich ausschließen, es lief schließlich auf MySQL4.1 alles Problemlos. Die Festplatte ist auch nicht voll, das habe ich als erstes geprüft.
Konfiguration:
Code: Select all
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "/var/lib/mysql/my.cnf" to set server-specific options or
# - "~/.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]
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
old_passwords = 1
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
query_cache_limit = 1048576
query_cache_size = 16777216
query_cache_type = 1
log-bin = /var/log/mysql/mysql-bin.log
expire-logs-days = 20
max_binlog_size = 104857600
skip-bdb
[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 ndbd storage daemons,
# not from the ndb_mgmd management daemon.
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1
Danke
TO