Hoi 
Enkele weken geleden heb ik een aantal sites van een CentOS webserver met MySQL 4.1 verhuisd naar een Debian Etch machine met MySQL 5.0.23. De content van de sites is hetzelfde gebleven, en zo ook de database inhoud (Opgeslagen in MyISAM tables)
Sinds de 'verhuizing' heb ik het probleem dat, random, er een 'deadlock' ontstaat. Soms eens per week, soms twee keer per dag. Compleet onvoorspelbaar.
Het resultaat is dat je nog wel verbinding kunt maken met de database, een 'show processlist;' werkt ook nog, maar een query komt er niet door. Die blijft eeuwig hangen.
Het eerste punt is dat ik altijd meende dat MySQL alleen een enkele table lockte? En dus niet alle databases op de server?
Een aantal keer heb ik met 'show processlist' gekeken waar hij op hing. Hier zijn een tweetal voorbeelden. Het valt me op dat elke keer de 'probleem query' er een is van een standaard pakket: Coppermine gallery.
Het 'vreemde' is dat deze queries altijd goed hebben gewerkt op de oude installatie, MySQL 4.1. Ik vraag me dus ook een beetje af of het probleem daar wel in zit, en niet zozeer bij de MySQL installatie. Welke overigens een standaard apt-get verpakte versie is.
De logs laten absoluut niets zien overigens. Het enige dat ze tonen is het 'repairen' van tables nadat ik de server een kill -9 heb gegeven om 'm weer werkende te krijgen.
Heeft iemand tips om hoe dit probleem aan te pakken? Eventueel zou ik wel willen proberen MySQL 4.1 te installeren, maar gezien deze niet meer aanwezig is in de apt repository weet ik niet of dat zo'n goed idee is...
Enkele weken geleden heb ik een aantal sites van een CentOS webserver met MySQL 4.1 verhuisd naar een Debian Etch machine met MySQL 5.0.23. De content van de sites is hetzelfde gebleven, en zo ook de database inhoud (Opgeslagen in MyISAM tables)
Sinds de 'verhuizing' heb ik het probleem dat, random, er een 'deadlock' ontstaat. Soms eens per week, soms twee keer per dag. Compleet onvoorspelbaar.
Het resultaat is dat je nog wel verbinding kunt maken met de database, een 'show processlist;' werkt ook nog, maar een query komt er niet door. Die blijft eeuwig hangen.
Het eerste punt is dat ik altijd meende dat MySQL alleen een enkele table lockte? En dus niet alle databases op de server?
Een aantal keer heb ik met 'show processlist' gekeken waar hij op hing. Hier zijn een tweetal voorbeelden. Het valt me op dat elke keer de 'probleem query' er een is van een standaard pakket: Coppermine gallery.
SQL:
1
2
| | 5828 | gallery | localhost | gallery | Query | 679 | Sorting result | SELECT * FROM cpg_pictures WHERE approved = 'YES'AND hits > 0 AND aid IN (1,2,3,5,6,7,8,9,10,11, | | 5836 | gallery | localhost | gallery | Query | 675 | Locked | UPDATE cpg_pictures SET hits=hits+1, lasthit_ip='xxxxxx', mtime=CURRENT_TIMESTAMP WHERE p | |
SQL:
1
2
3
| | 5519 | admin | localhost | gallery | Query | 972 | Sending data | SELECT `user_id`, `user_name`, `user_group`, `user_profile1` , `user_group_list` FROM `cpg_user | | 5607 | gallery | localhost | gallery | Query | 923 | Locked | UPDATE `gallery`.cpg_users SET user_lastvisit = NOW() WHERE user_name = 'xxxx' AND BINARY | |
Het 'vreemde' is dat deze queries altijd goed hebben gewerkt op de oude installatie, MySQL 4.1. Ik vraag me dus ook een beetje af of het probleem daar wel in zit, en niet zozeer bij de MySQL installatie. Welke overigens een standaard apt-get verpakte versie is.
De logs laten absoluut niets zien overigens. Het enige dat ze tonen is het 'repairen' van tables nadat ik de server een kill -9 heb gegeven om 'm weer werkende te krijgen.
Heeft iemand tips om hoe dit probleem aan te pakken? Eventueel zou ik wel willen proberen MySQL 4.1 te installeren, maar gezien deze niet meer aanwezig is in de apt repository weet ik niet of dat zo'n goed idee is...