Removed useless dbadmin script from mysql replication tasks
It was used by a very specific client case and is not needed for a general role.
This commit is contained in:
parent
eb8e453fd4
commit
465f638cd4
|
@ -1,101 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Manage MySQL accounts and databases.
|
|
||||||
#
|
|
||||||
# Note: in the following code:
|
|
||||||
# - account means user@host
|
|
||||||
# - user is the user part of account
|
|
||||||
#
|
|
||||||
|
|
||||||
MYSQL_OPTS="--raw --skip-column-names --skip-line-numbers"
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat <<EOT >&2
|
|
||||||
Usage: $0 <command> [<command arg>]
|
|
||||||
|
|
||||||
Available commands are:
|
|
||||||
|
|
||||||
list [<user>]
|
|
||||||
List all accounts and their databases, separated by semi-colon. If user
|
|
||||||
is specified, list databases for this user only.
|
|
||||||
|
|
||||||
passwd <user> <new password>
|
|
||||||
Change password for specified user.
|
|
||||||
|
|
||||||
EOT
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
|
||||||
printf >&2 "Error: $@\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_host() {
|
|
||||||
user="$1"
|
|
||||||
host=$(mysql $MYSQL_OPTS --execute "SELECT host FROM mysql.user WHERE user='$user'")
|
|
||||||
if [ $(echo "$host" |wc -l) -gt 1 ]; then
|
|
||||||
# TODO: Not perfect!
|
|
||||||
echo "$host" |grep '%'
|
|
||||||
else
|
|
||||||
echo $host
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_dbs() {
|
|
||||||
account="$1"
|
|
||||||
echo "$(mysql $MYSQL_OPTS --execute "SHOW GRANTS FOR $account" |perl -ne 'print "$1 " if (/^GRANT (?!USAGE).* ON `(.*)`/)')"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_accounts() {
|
|
||||||
echo "$(mysql $MYSQL_OPTS --execute "SELECT user,host FROM mysql.user;" |perl -ne 'print "$1\@$2\n" if (/^([^\s]+)\s+([^\s]+)$/)'|sed "s/^/'/; s/@/'@'/; s/$/'/;")"
|
|
||||||
}
|
|
||||||
|
|
||||||
list() {
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
user="$1"
|
|
||||||
host=$(get_host $user)
|
|
||||||
account="'$user'@'$host'"
|
|
||||||
echo $account:$(get_dbs "$account")
|
|
||||||
else
|
|
||||||
for account in $(get_accounts); do
|
|
||||||
echo $account:$(get_dbs "$account")
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
passwd() {
|
|
||||||
if [ $# -ne 2 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
user="$1"
|
|
||||||
password="$2"
|
|
||||||
host=$(get_host $user)
|
|
||||||
|
|
||||||
mysql -e "SET PASSWORD FOR '$user'@'$host' = PASSWORD('$password');"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Argument processing.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ $# -lt 1 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
command="$1"
|
|
||||||
shift
|
|
||||||
|
|
||||||
case "$command" in
|
|
||||||
list)
|
|
||||||
list $@
|
|
||||||
;;
|
|
||||||
passwd)
|
|
||||||
passwd $@
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error "Unknown command: $command."
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -49,9 +49,3 @@
|
||||||
src: 'xinetd/mysqlchk.sh'
|
src: 'xinetd/mysqlchk.sh'
|
||||||
dest: '/usr/share/scripts/'
|
dest: '/usr/share/scripts/'
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
- name: 'Copy dbadmin script'
|
|
||||||
copy:
|
|
||||||
src: 'dbadmin.sh'
|
|
||||||
dest: '/usr/share/scripts/'
|
|
||||||
mode: '0755'
|
|
||||||
|
|
Loading…
Reference in a new issue