mysql-create-superuser/mysql-create-superuser.sh
Eliezer Croitoru f646b2995d 2
2025-10-15 09:47:08 +03:00

32 lines
836 B
Bash
Executable File

#!/usr/bin/env bash
# Function to generate a random password
generate_password() {
openssl rand -base64 30 | tr -dc 'a-zA-Z0-9' | head -c 40
}
# Check if pwgen is available
PWGEN=$(which pwgen 2>/dev/null)
if [ -z "${PWGEN}" ]; then
echo "pwgen not found, using openssl for password generation"
AUTOGEN_PASSWORD=$(generate_password)
else
AUTOGEN_PASSWORD=$(${PWGEN} -n1 -v 40)
fi
USERNAME="$1"
if [ -z "${USERNAME}" ]; then
echo "Missing username"
exit 1
fi
cat <<EOF
CREATE USER '${USERNAME}'@'localhost' IDENTIFIED BY '${AUTOGEN_PASSWORD}';
GRANT ALL PRIVILEGES ON *.* TO '${USERNAME}'@'localhost' WITH GRANT OPTION;
CREATE USER '${USERNAME}'@'%' IDENTIFIED BY '${AUTOGEN_PASSWORD}';
GRANT ALL PRIVILEGES ON *.* TO '${USERNAME}'@'%' WITH GRANT OPTION;
SHOW GRANTS FOR '${USERNAME}';
FLUSH PRIVILEGES;
EOF