[debian-mysql] Bug#481154: /usr/bin/mysql: Start Script Error - "ERROR 1054 (42S22) at line 2: Unknown column 'select count(*) into @discard from ' in 'field list'"
Osiris X
osiris_x_rrm at hotmail.com
Sat May 24 13:40:54 UTC 2008
Package: mysql-server-5.0
Version: 5.0.51a-6
Followup-For: Bug #481154
Basically the double quotes contained within the sql query in /usr/share/mysql/debian-start.inc.sh
lead to evaluation and substitution (when processed by MySQL) of the separate CONCAT parameters
instead of the whole concatenated string. Thus the sub-query never executes and is instead
treated as a literal column name, hence the error. The key is to use single quotes in the SQL query
so that everything is treated literally (the concat will force the evaluation of the sub-squery). Then
from a bash perspective you can encase the whole sql statement, being passed to /usr/sbin/mysql, in
double quotations without fear as there are no variables or regex statements outside of single
quotations in the sql statement.
A patch is included
Os
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.25
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages mysql-server-5.0 depends on:
ii adduser 3.107 add and remove users and groups
ii debconf [debconf-2.0] 1.5.21 Debian configuration management sy
ii libc6 2.7-10 GNU C Library: Shared libraries
ii libdbi-perl 1.604-1+b1 Perl5 database interface by Tim Bu
ii libgcc1 1:4.3.0-3 GCC support library
ii libmysqlclient15off 5.0.51a-6 MySQL database client library
ii libncurses5 5.6+20080308-1 Shared libraries for terminal hand
ii libreadline5 5.2-3 GNU readline and history libraries
ii libstdc++6 4.3.0-3 The GNU Standard C++ Library v3
ii libwrap0 7.6.q-15 Wietse Venema's TCP wrappers libra
ii lsb-base 3.2-11 Linux Standard Base 3.2 init scrip
ii mysql-client-5.0 5.0.51a-6 MySQL database client binaries
ii mysql-common 5.0.51a-6 MySQL database common files
ii passwd 1:4.1.1-1 change and administer password and
ii perl 5.10.0-10 Larry Wall's Practical Extraction
ii psmisc 22.6-1 Utilities that use the proc filesy
ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime
Versions of packages mysql-server-5.0 recommends:
ii bsd-mailx [mailx] 8.1.2-0.20071201cvs-3 A simple mail user agent
ii libhtml-template-p 2.9-1 HTML::Template : A module for usin
ii mailx 1:20071201-3 Transitional package for mailx ren
-- debconf information:
mysql-server-5.0/really_downgrade: false
mysql-server-5.0/need_sarge_compat: false
mysql-server-5.0/start_on_boot: true
mysql-server/error_setting_password:
mysql-server-5.0/nis_warning:
mysql-server-5.0/postrm_remove_databases: false
mysql-server-5.0/need_sarge_compat_done: true
mysql-server/password_mismatch:
-------------- next part --------------
--- debian-start.inc.sh.old 2008-05-24 13:33:17.000000000 +0100
+++ debian-start.inc.sh 2008-05-24 14:29:06.000000000 +0100
@@ -18,10 +18,10 @@
tempfile=`tempfile`
# We have to use xargs in this case, because a for loop barfs on the
# spaces in the thing to be looped over.
- LC_ALL=C $MYSQL --skip-column-names --batch -e '
- select concat("select count(*) into @discard from ",
- TABLE_SCHEMA, ".", TABLE_NAME)
- from information_schema.TABLES where ENGINE="MyISAM"' | \
+ LC_ALL=C $MYSQL --skip-column-names --batch -e "
+ select concat('select count(*) into @discard from ',
+ TABLE_SCHEMA, '.', TABLE_NAME)
+ from information_schema.TABLES where ENGINE='MyISAM'" | \
xargs -i $MYSQL --skip-column-names --silent --batch \
--force -e "{}" >$tempfile
if [ -s $tempfile ]; then
More information about the pkg-mysql-maint
mailing list