aboutsummaryrefslogtreecommitdiffstats
path: root/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh')
-rw-r--r--asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh105
1 files changed, 105 insertions, 0 deletions
diff --git a/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh b/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
new file mode 100644
index 0000000000..648bd45756
--- /dev/null
+++ b/asdc-tests/src/test/resources/CI/tests/uploadComponent/scripts/start_mysql.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+
+echo "------------------------ ENV ------------------------"
+echo "ENV VAR USED VOLUME_HOME : $VOLUME_HOME"
+echo "ENV VAR USED PORT : $PORT"
+echo "ENV VAR USED DB_NAME : $DB_NAME"
+echo "ENV VAR USED DB_USER : $DB_USER"
+echo "ENV VAR USED DB_PASSWORD : $DB_PASSWORD"
+echo "---------------------------- ------------------------"
+
+CURRENT_PATH=`dirname "$0"`
+
+function StartMySQL {
+ echo "Starting MYSQL..."
+ sudo /etc/init.d/mysql stop
+ sudo /usr/bin/mysqld_safe > /dev/null 2>&1 &
+ RET=1
+ while [[ RET -ne 0 ]]; do
+ echo "=> Waiting for confirmation of MySQL service startup"
+ sleep 5
+ sudo mysql -uroot -e "status" > /dev/null 2>&1
+ RET=$?
+ done
+}
+
+function AllowFileSystemToMySQL {
+ MYSQL_DATA_DIR=$VOLUME_HOME/data
+ MYSQL_LOG=$VOLUME_HOME/logs
+
+ echo "Setting data directory to $MYSQL_DATA_DIR an logs to $MYSQL_LOG ..."
+ if sudo test ! -d $MYSQL_DATA_DIR; then
+ echo "Creating DATA dir > $MYSQL_DATA_DIR ..."
+ sudo mkdir -p $MYSQL_DATA_DIR
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_DATA_DIR
+ fi
+ if sudo test ! -d $MYSQL_LOG; then
+ echo "Creating LOG dir > $MYSQL_LOG ..."
+ sudo mkdir -p $MYSQL_LOG
+ # mysql as owner and group owner
+ sudo chown -R mysql:mysql $MYSQL_LOG
+ fi
+
+ # edit app mysql permission in : /etc/apparmor.d/usr.sbin.mysqld
+ COUNT_LINE=`sudo cat /etc/apparmor.d/usr.sbin.mysqld | wc -l`
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_DATA_DIR/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/ r," /etc/apparmor.d/usr.sbin.mysqld
+ sudo sed -i "$(($COUNT_LINE)) i $MYSQL_LOG/** rwk," /etc/apparmor.d/usr.sbin.mysqld
+
+ # reload app permission manager service
+ sudo service apparmor reload
+}
+
+function UpdateMySQLConf {
+ echo "Updating MySQL conf files [DATA, LOGS]..."
+ sudo sed -i "s:/var/lib/mysql:$MYSQL_DATA_DIR:g" /etc/mysql/my.cnf
+ sudo sed -i "s:/var/log/mysql/error.log:$MYSQL_LOG/error.log:g" /etc/mysql/my.cnf
+ sudo sed -i "s:3306:$PORT:g" /etc/mysql/my.cnf
+
+ if sudo test ! -f /usr/share/mysql/my-default.cnf; then
+ sudo cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
+ fi
+ if sudo test ! -f /etc/mysql/conf.d/mysqld_charset.cnf; then
+ sudo cp $configs/mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf
+ fi
+
+ if [ "$BIND_ADRESS" == "true" ]; then
+ sudo sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
+ fi
+}
+
+function InitMySQLDb {
+ # create database DB_NAME
+ if [ "$DB_NAME" ]; then
+ echo "INIT DATABASE $DB_NAME"
+ sudo mysql -u root -e "CREATE DATABASE $DB_NAME";
+ fi
+
+ # create user and give rights
+ if [ "$DB_USER" ]; then
+ echo "CREATE USER $DB_USER WITH PASSWORD $DB_PASSWORD AND GRAND RIGHTS ON $DB_NAME"
+ sudo mysql -uroot -e "CREATE USER '${DB_USER}'@'%' IDENTIFIED BY '$DB_PASSWORD'"
+ sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%' WITH GRANT OPTION"
+ sudo mysql -uroot -e "FLUSH PRIVILEGES"
+ fi
+}
+
+# Create a new database path to the attched volume
+if sudo test ! -d $VOLUME_HOME/data; then
+ echo "=> An empty or uninitialized MySQL volume is detected in $VOLUME_HOME/data"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+ echo "=> Init new database path to $MYSQL_DATA_DIR"
+ sudo mysql_install_db --basedir=/usr --datadir=$MYSQL_DATA_DIR
+ echo "=> MySQL database initialized !"
+else
+ echo "=> Using an existing volume of MySQL"
+ AllowFileSystemToMySQL
+ UpdateMySQLConf
+fi
+
+# Finally start MySQL with new configuration
+StartMySQL
+InitMySQLDb \ No newline at end of file