[Dbconfig-common-devel] dbconfig-common/internal mysql,1.5,1.6
seanius@haydn.debian.org
seanius@haydn.debian.org
Update of /cvsroot/dbconfig-common/dbconfig-common/internal
In directory haydn:/org/alioth.debian.org/chroot/home/users/seanius/tmp/cvs-serv4144/internal
Modified Files:
mysql
Log Message:
'verify user' and 'verify create database' fixes for mysql
Index: mysql
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/internal/mysql,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- mysql 5 May 2005 03:01:22 -0000 1.5
+++ mysql 5 May 2005 04:44:28 -0000 1.6
@@ -55,7 +55,7 @@
## note this is done without passing any sensitive info on the cmdline
##
dbc_mysql_exec_file(){
- local l_sqlfile l_retval l_error
+ local l_sqlfile l_retval l_error l_dbname
l_sqlfile=$1
if [ ! "$l_sqlfile" ]; then
@@ -65,7 +65,15 @@
fi
mycnf=`_dbc_generate_mycnf`
- l_error=`mysql --defaults-extra-file="$mycnf" $dbc_dbname < $l_sqlfile 2>&1`
+ if [ ! "$_dbc_nodb" ]; then
+ l_dbname="$dbc_dbname"
+ fi
+ if [ ! "$_dbc_pass_output" ]; then
+ l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
+ else
+ mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
+ fi
+
l_retval=$?
rm -f $mycnf
if [ $l_retval -ne 0 ]; then
@@ -92,7 +100,12 @@
if [ ! "$_dbc_nodb" ]; then
l_dbname="$dbc_dbname"
fi
- l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
+ if [ ! "$_dbc_pass_output" ]; then
+ l_error=`mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile 2>&1`
+ else
+ mysql --defaults-extra-file="$mycnf" $l_dbname < $l_sqlfile
+ fi
+
l_retval=$?
rm -f $mycnf $l_sqlfile
if [ $l_retval -ne 0 ]; then
@@ -105,9 +118,9 @@
## check for the existance of a specified database
##
_dbc_mysql_check_database(){
- local dbc_dbname
+ local dbc_dbname local _dbc_nodb _dbc_pass_output
dbc_dbname=$1
- dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
+ _dbc_nodb="yes" _dbc_pass_output="yes" dbc_mysql_exec_command "SHOW DATABASES" 2>/dev/null | grep -q "^$dbc_dbname\$"
return $?
}
@@ -129,9 +142,11 @@
l_dballow="$dbc_dballow"
fi
- _dbc_nodb="yes"
- if dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" 2>/dev/null | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`" ; then
- return $?
+ if ! _dbc_pass_output="yes" _dbc_nodb="yes" dbc_mysql_exec_command "SHOW GRANTS FOR '$dbc_dbuser'@'$l_dballow'" | grep -qi "GRANT ALL PRIVILEGES ON \`$dbc_dbname\`"; then
+ return 1
+ else
+ return 0
+ fi
}
###
@@ -164,8 +179,7 @@
dbc_logline "already exists"
dbc_status=nothing
else
- _dbc_nodb="yes"
- dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname"
+ _dbc_nodb="yes" dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname"
ret=$?
_dbc_nodb=""
if [ "$ret" = "0" ]; then
@@ -263,8 +277,7 @@
dbc_logline "already exists"
else
l_dbname=$dbc_dbname
- _dbc_nodb="yes"
- dbc_mysql_exec_file "$l_sqlfile"
+ _dbc_nodb="yes" dbc_mysql_exec_file "$l_sqlfile"
l_ret=$?
_dbc_nodb=""
@@ -272,6 +285,7 @@
dbc_logline "success"
dbc_logpart "verifying access for $dbc_dbuser@$l_dballow:"
if ! _dbc_mysql_check_user ; then
+ l_ret=1
dbc_logline "failed"
else
dbc_status=create
@@ -282,6 +296,7 @@
fi
fi
rm -f $l_sqlfile
+ return $l_ret
}
# File: mysql-dropuser.sh
@@ -325,8 +340,7 @@
REVOKE ALL PRIVILEGES ON \`$dbc_dbname\`.* FROM '$dbc_dbuser'@'$l_dballow';
FLUSH PRIVILEGES;
EOF
- _dbc_nodb="yes"
- if dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
+ if _dbc_nodb="yes" dbc_mysql_exec_file "$l_sqlfile" 2>/dev/null; then
dbc_status=drop
dbc_logline "success"
else