summaryrefslogtreecommitdiff
path: root/localaddmysqldb
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2003-05-26 16:53:13 +0000
committerJonas Smedegaard <dr@jones.dk>2003-05-26 16:53:13 +0000
commite02ab9793384ebedff52990f20f511667cada4c0 (patch)
tree502f4f88824c82645b77f0f4478cbd26215e4f91 /localaddmysqldb
parentb3d2ac80db490620a416d286a2b2f03b0e092584 (diff)
Add special case -z or --ez for eZ Publish sites. Add some TODOs.
Diffstat (limited to 'localaddmysqldb')
-rwxr-xr-xlocaladdmysqldb23
1 files changed, 18 insertions, 5 deletions
diff --git a/localaddmysqldb b/localaddmysqldb
index 282a6fa..06300c4 100755
--- a/localaddmysqldb
+++ b/localaddmysqldb
@@ -3,7 +3,7 @@
# /usr/local/sbin/localaddmysqldb
# Copyright 2001-2002 Jonas Smedegaard <dr@jones.dk>
#
-# $Id: localaddmysqldb,v 1.4 2003-05-20 19:25:06 jonas Exp $
+# $Id: localaddmysqldb,v 1.5 2003-05-26 16:53:13 jonas Exp $
#
# Add/update MySQL database
#
@@ -13,12 +13,18 @@
# TODO: Add a --dry-run or --test option showing what would be done (how options are set, and a descriptive text about how they are used)
# TODO: Add option to reset access for all existing databases owned by user:
# echo $alldb | egrep "^$dbuser(_|$)"
+# TODO: Split in init-mysql-user and add-mysql-db
+# TODO: Disallow same password for <user> and <user>-admin
+# TODO: Only ask for password if it doesn't exist already
+# TODO: Creating a new unix user and mysql user sets <user>-admin password equal to unix password
+# TODO: Have database administrator default to root when asked for but input is blank
+# TODO: Don't ask for admin password (or hint that it may not be needed) if /root/.my.cnf exists
set -e
prg=`basename $0`
-TEMP=`getopt -o hu:U:D:Z:i::v::q::f:: --long help,user:,dbuser:,dbserver:,dballow:,info::,verbose::,debug::,query::,force:: -n "$prg" -- "$@"`
+TEMP=`getopt -o hu:U:D:Z:i::v::q::f::z:: --long help,user:,dbuser:,dbserver:,dballow:,info::,verbose::,debug::,query::,force::,ez:: -n "$prg" -- "$@"`
# Check for non-GNU getopt
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
@@ -27,7 +33,7 @@ eval set -- "$TEMP"
# Defaults are evaluated at runtime in this order
# (If changing defaults, you might need to change these as well)
-opts1="user dbserver dballow" # Options with self-contained defaults
+opts1="user dbserver dballow ez" # Options with self-contained defaults
opts2="dbuser home" # Options requiring $opts1 to resolve default
optsboolean="debug verbose info query force" # Do not touch these!
@@ -41,6 +47,7 @@ defaultverbose="off"
defaultdebug="off"
defaultquery="on"
defaultforce="off"
+defaultforce=""
# Defaults not (yet) user configurable
defaulthome="/var/www"
@@ -70,6 +77,7 @@ function usage() {
echo " --debug[=on|off] Show debug during installation (default: $defaultdebug)"
echo " -q, --query[=on|off] Ask for missing options (default: $defaultquery)"
echo " -f, --force[=on|off] Replace existing installation (default: $defaultforce)"
+ echo " -z, --ez=[=on|off] Setup as eZ site (default: off)"
echo
echo "Each DBNAME can contain only alphanumerics."
echo
@@ -113,6 +121,7 @@ while true ; do
--debug) case "$2" in ""|on) debug="on";; *) debug="off";; esac; shift 2;;
-q|--query) case "$2" in ""|on) query="on";; *) query="off";; esac; shift 2;;
-f|--force) case "$2" in ""|on) force="on";; *) force="off";; esac; shift 2;;
+ -z|--ez) case "$2" in ""|on) ez="on";; *) ez="off";; esac; shift 2;;
--) shift; break;;
*) echo "Internal error!" ; exit 1 ;;
esac
@@ -265,12 +274,16 @@ if [ -e /usr/share/wwwconfig-common/mysql-createuser.sh ] ; then
done
else
for h in `echo "localhost $dballow" | sort -u`; do
- mysql -u$dbadmin $optdbserver mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname.* TO '$dbuser'@'$h' IDENTIFIED BY '$dbpass';"
+ if [ "$ez" = "on" ]; then # eZ Publish 2.2.x requires CREATE,DROP,INDEX for the search routines
+ mysql -u$dbadmin $optdbserver mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname.* TO '$dbuser'@'$h' IDENTIFIED BY '$dbpass';"
+ else
+ mysql -u$dbadmin $optdbserver mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname.* TO '$dbuser'@'$h' IDENTIFIED BY '$dbpass';"
+ fi
done
fi
for h in `echo "localhost $dballow" | sort -u`; do
- mysql -u$dbadmin $optdbserver mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX ON $dbname.* TO '$dbuser-admin'@'$h' IDENTIFIED BY '$dbpass';"
+ mysql -u$dbadmin $optdbserver mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON $dbname.* TO '$dbuser-admin'@'$h' IDENTIFIED BY '$dbpass';"
done
done