File: //bigscoots/mysql_gen.sh
#!/bin/bash
create_random_credentials() {
PASS=$(pwgen -s 40 1)
DBNUSR=$(pwgen -s 12 1)
# Check if user exists and remove if necessary
if mysql -e "SELECT User FROM mysql.user WHERE User='$DBNUSR'" | grep -q "$DBNUSR"; then
mysql <<MYSQL_SCRIPT
DROP USER '$DBNUSR'@'localhost';
MYSQL_SCRIPT
fi
mysql <<MYSQL_SCRIPT
CREATE DATABASE $DBNUSR;
CREATE USER '$DBNUSR'@'localhost' IDENTIFIED BY '$PASS';
GRANT ALL PRIVILEGES ON $DBNUSR.* TO '$DBNUSR'@'localhost';
FLUSH PRIVILEGES;
MYSQL_SCRIPT
echo "Database connection info:"
echo "Username: $DBNUSR"
echo "Password: $PASS"
echo "Database: $DBNUSR"
}
create_manual_credentials() {
# Prompt for MySQL username
read -p "Enter MySQL username: " username
# Check if user exists and remove if necessary
if mysql -e "SELECT User FROM mysql.user WHERE User='$username'" | grep -q "$username"; then
mysql <<MYSQL_SCRIPT
DROP USER '$username'@'localhost';
MYSQL_SCRIPT
fi
# Prompt for MySQL password (masked input)
read -s -p "Enter MySQL password: " password
echo
# Prompt for database name
read -p "Enter database name: " database
mysql <<MYSQL_SCRIPT
CREATE DATABASE IF NOT EXISTS $database;
CREATE USER '$username'@'localhost' IDENTIFIED BY '$password';
GRANT ALL PRIVILEGES ON $database.* TO '$username'@'localhost';
FLUSH PRIVILEGES;
MYSQL_SCRIPT
echo "Database connection info:"
echo "Username: $username"
echo "Password: $password"
echo "Database: $database"
}
# Prompt for option selection
read -p "Select an option:
1. Generate Database Credentials
2. Enter Database Credentials
Enter the option number: " option
case $option in
1)
create_random_credentials
;;
2)
create_manual_credentials
;;
*)
echo "Invalid option. Exiting."
;;
esac