Package: mysql-server-5.0 The debian-start script (that supposedly checks for table errors) has critical errors if the database name contains a character that needs to be quoted in SQL, e.g. somedb-dev doesn't work, while `somedb-dev` does.
The resulting errors look like this (one for *each* table in databases with such names): /etc/mysql/debian-start[2715]: ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-dev.news' at line 1 You may agree this is pretty critical for a server. This is the version I'm using: $ dpkg -l mysql-server-5.0 |grep ^ii ii mysql-server-5.0 5.0.51a-5 MySQL database server binaries The fix would be to escape the name appropriately. The attached patch fixes the issue. mvrgr, Wouter -- :wq mail [EMAIL PROTECTED] web http://uwstopia.nl
--- /usr/share/mysql/debian-start.inc.sh.orig 2008-05-13 10:26:59.000000000 +0200 +++ /usr/share/mysql/debian-start.inc.sh 2008-05-13 10:26:52.000000000 +0200 @@ -16,8 +16,8 @@ # Checking for $? is unreliable so the size of the output is checked. # Some table handlers like HEAP do not support CHECK TABLE. tempfile=`tempfile` - LC_ALL=C $MYSQL -N -b -e 'select concat("select count(*) from ",TABLE_SCHEMA, - ".", TABLE_NAME) from information_schema.TABLES where ENGINE="MyISAM"' | \ + LC_ALL=C $MYSQL -N -b -e 'select concat("select count(*) from `",TABLE_SCHEMA, + "`.", TABLE_NAME) from information_schema.TABLES where ENGINE="MyISAM"' | \ xargs -i $MYSQL -N -q -e "{}" 2>&1 \ | perl -e '$_=join("", <>); s/^[^\n]+\n(error|note)\s+: The (handler|storage engine) for the table doesn.t support check\n//smg;print;' \ > $tempfile
signature.asc
Description: Digital signature