36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Variables - replace these with your desired values or use environment variables
|
|
ADMIN_USER="admin"
|
|
ADMIN_PASSWORD=$(openssl rand -base64 32)
|
|
|
|
echo "Creating MySQL admin user with root-like privileges..."
|
|
|
|
# Execute MySQL commands inside the container
|
|
mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" -e "
|
|
DROP USER IF EXISTS '$ADMIN_USER'@'%';
|
|
CREATE USER '$ADMIN_USER'@'%' IDENTIFIED BY '$ADMIN_PASSWORD';
|
|
GRANT ALL PRIVILEGES ON *.* TO '$ADMIN_USER'@'%' WITH GRANT OPTION;
|
|
FLUSH PRIVILEGES;
|
|
SELECT User, Host FROM mysql.user WHERE User = '$ADMIN_USER';
|
|
" 2>/dev/null
|
|
|
|
# Check if the command was successful
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ MySQL admin user '$ADMIN_USER' created successfully!"
|
|
echo "Connection details:"
|
|
echo " - Username: $ADMIN_USER"
|
|
echo " - Password: $ADMIN_PASSWORD"
|
|
echo " - Host: localhost"
|
|
echo " - Port: 3806 (mapped port)"
|
|
|
|
# Optionally save credentials to a file
|
|
echo "Saving credentials to /opt/admin_credentials.txt"
|
|
echo "Username: $ADMIN_USER" > /opt/admin_credentials.txt
|
|
echo "Password: $ADMIN_PASSWORD" >> /opt/admin_credentials.txt
|
|
chmod 600 /opt/admin_credentials.txt
|
|
else
|
|
echo "❌ Failed to create MySQL admin user."
|
|
echo "Please check your container status and credentials."
|
|
fi |