You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

66 lines
2.5 KiB

# Database setup
function ee_mod_setup_database()
{
# Random characters
local ee_random=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1)
# Replace dot(.) with underscore(_) in EE_DOMAIN Name
local ee_replace_dot=$(echo $EE_DOMAIN | tr '.' '_')
# Default database or custom database
if [ $($EE_CONFIG_GET mysql.db-name) == "true" ];then
read -p "Enter the MySQL database name [$ee_replace_dot]: " EE_DB_NAME
fi
# If mysql.db-name = false
# Then it never ask for MySQL database name in this case $EE_DB_NAME is empty
# If mysql.db-name = true
# User enter custom database name then $EE_DB_NAME is not empty & we used provided database name
# If user pressed enter then $EE_DB_NAME is empty
if [[ $EE_DB_NAME = "" ]]; then
EE_DB_NAME=$ee_replace_dot
fi
# Default database user or custom user
if [ $($EE_CONFIG_GET mysql.db-user) == "true" ]; then
read -p "Enter the MySQL database username [$ee_replace_dot]: " EE_DB_USER
read -sp "Enter the MySQL database password [$ee_random]: " EE_DB_PASS
fi
# If mysql.db-user = false
# Then it never ask for MySQL database user in this case $EE_DB_USER is empty
# If mysql.db-name = true
# User enter custom database user then $EE_DB_USER is not empty & we used provided database user
# If user pressed enter then $EE_DB_USER is empty
if [[ $EE_DB_USER = "" ]]; then
EE_DB_USER=$ee_replace_dot
fi
if [[ $EE_DB_PASS = "" ]]; then
EE_DB_PASS=$ee_random
fi
# Fix MySQL username ERROR 1470 (HY000)
if [[ $(echo -n $EE_DB_USER | wc -c) -gt 16 ]]; then
ee_lib_echo "Autofix MySQL username (ERROR 1470 (HY000)), please wait..."
local ee_random10=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n1)
EE_DB_USER=$(echo $EE_DB_USER | cut -c1-16 | sed "s/.\{10\}$/$ee_random10/")
fi
# Create MySQL database
echo -e "EE_DB_NAME = $EE_DB_NAME \nEE_DB_USER = $EE_DB_USER \nEE_DB_PASS = $EE_DB_PASS \nEE_MYSQL_HOST = $EE_MYSQL_HOST \nEE_MYSQL_CLIENT_HOST = $EE_MYSQL_CLIENT_HOST" &>> $EE_COMMAND_LOG
mysql -e "create database \`$EE_DB_NAME\`" \
|| ee_lib_error "Unable to create $EE_DB_NAME database, exit status = " $?
# Create MySQL User
mysql -e "create user '$EE_DB_USER'@'$EE_MYSQL_CLIENT_HOST' identified by '$EE_DB_PASS'" \
|| ee_lib_error "Unable to create $EE_DB_USER database user, exit status = " $?
# Grant permission
mysql -e "grant all privileges on \`$EE_DB_NAME\`.* to '$EE_DB_USER'@'$EE_MYSQL_CLIENT_HOST'" \
|| ee_lib_error "Unable to grant privileges for $EE_DB_USER database user, exit status = " $?
mysql -e "flush privileges"
}