From e02ab9793384ebedff52990f20f511667cada4c0 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 26 May 2003 16:53:13 +0000 Subject: Add special case -z or --ez for eZ Publish sites. Add some TODOs. --- localaddmysqldb | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'localaddmysqldb') 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 # -# $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 and -admin +# TODO: Only ask for password if it doesn't exist already +# TODO: Creating a new unix user and mysql user sets -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 -- cgit v1.2.3