sogo-docker/script/mysql.sh

40 lines
No EOL
1.8 KiB
Bash
Executable file

#!/bin/bash
source /usr/local/bin/common.sh
check_require "MYSQL_SERVER" $MYSQL_SERVER
check_require "MYSQL_ROOT_PASSWORD" $MYSQL_ROOT_PASSWORD
check_require "MYSQL_USER" $MYSQL_USER
check_require "MYSQL_USER_PASSWORD" $MYSQL_USER_PASSWORD
MYSQL_PORT=${MYSQL_PORT:-3306}
MYSQL_DATABASE_NAME=${MYSQL_DATABASE_NAME:sogo}
wait_for_db() {
log_info "Trying to connect to the DB server"
DOCKERIZE_TIMEOUT=${DOCKERIZE_TIMEOUT:-"60s"}
dockerize -timeout ${DOCKERIZE_TIMEOUT} -wait tcp://${MYSQL_SERVER}:${MYSQL_PORT:-3306}
if [[ $? -ne 0 ]]; then
log_error "Cannot connect to the DB server"
exit 1
fi
log_info "Successfully connected to the DB server"
}
init_db(){
log_info "Checking if database exists"
if [[ -z "`mysql -h$MYSQL_SERVER -P${MYSQL_PORT:-3306} -uroot -p$MYSQL_ROOT_PASSWORD -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$MYSQL_USER'" 2>&1`" ]];then
log_info "Creating database"
mysql -h$MYSQL_SERVER -P$MYSQL_PORT -uroot -p$MYSQL_ROOT_PASSWORD -e "
CREATE DATABASE $MYSQL_DATABASE_NAME CHARACTER SET='utf8';
CREATE USER '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_USER_PASSWORD';
GRANT ALL PRIVILEGES ON $MYSQL_DATABASE_NAME.* TO '$MYSQL_USER'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;"
else
log_info "Database already exist"
fi
update_conf "SOGoProfileURL" \"mysql://$MYSQL_USER:$MYSQL_USER_PASSWORD@$MYSQL_SERVER:$MYSQL_PORT/$MYSQL_DATABASE_NAME/sogo_user_profile\"
update_conf "OCSFolderInfoURL" \"mysql://$MYSQL_USER:$MYSQL_USER_PASSWORD@$MYSQL_SERVER:$MYSQL_PORT/$MYSQL_DATABASE_NAME/sogo_folder_info\"
update_conf "OCSSessionsFolderURL" \"mysql://$MYSQL_USER:$MYSQL_USER_PASSWORD@$MYSQL_SERVER:$MYSQL_PORT/$MYSQL_DATABASE_NAME/sogo_sessions_folder\"
}