Usage:
- Run the script as usual: ./create-db.sh [user] [database_name]
- When prompted, enter the MySQL root password. The input will not be displayed for security.
./create-db.sh [user] [database_name]
Here is a simple script to achieve this:
#!/bin/bash # Check if the correct number of arguments is given if [ "$#" -ne 2 ]; then echo "Usage: $0 [username] [database_name]" exit 1 fi # Assign arguments to variables USERNAME=$1 DATABASE=$2 # Prompt for MySQL root password echo -n "Enter MySQL root password: " read -s MYSQL_ROOT_PASSWORD echo # MySQL root user (assuming 'root') MYSQL_ROOT_USER='root' # Command to create a new database CREATE_DATABASE="CREATE DATABASE IF NOT EXISTS ${DATABASE};" # Command to create a new user with all privileges on the new database CREATE_USER="CREATE USER IF NOT EXISTS '${USERNAME}'@'localhost' IDENTIFIED BY 'password';" GRANT_PRIVILEGES="GRANT ALL PRIVILEGES ON ${DATABASE}.* TO '${USERNAME}'@'localhost';" FLUSH_PRIVILEGES="FLUSH PRIVILEGES;" # Execute the commands mysql -u"${MYSQL_ROOT_USER}" -p"${MYSQL_ROOT_PASSWORD}" -e "${CREATE_DATABASE}${CREATE_USER}${GRANT_PRIVILEGES}${FLUSH_PRIVILEGES}" echo "Database and user created successfully."
Here are the steps to make your create-db.sh
script globally accessible:
sudo mv create-db.sh /usr/local/bin sudo chmod +x /usr/local/bin/create-db.sh
Optional: Rename the Script for Easier Access:
If you want, you can rename the script to just create-db
for ease of use:
sudo mv /usr/local/bin/create-db.sh /usr/local/bin/create-db
Views: 120