Merge "Add possibility to configure manually MYSQL_SERVICE_NAME"
This commit is contained in:
commit
92de86fb64
@ -15,15 +15,17 @@ MYSQL_DRIVER=${MYSQL_DRIVER:-PyMySQL}
|
||||
|
||||
register_database mysql
|
||||
|
||||
MYSQL_SERVICE_NAME=mysql
|
||||
if is_fedora && ! is_oraclelinux; then
|
||||
MYSQL_SERVICE_NAME=mariadb
|
||||
elif is_suse && systemctl list-unit-files | grep -q 'mariadb\.service'; then
|
||||
# Older mariadb packages on SLES 12 provided mysql.service. The
|
||||
# newer ones on SLES 12 and 15 use mariadb.service; they also
|
||||
# provide a mysql.service symlink for backwards-compatibility, but
|
||||
# let's not rely on that.
|
||||
MYSQL_SERVICE_NAME=mariadb
|
||||
if [[ -z "$MYSQL_SERVICE_NAME" ]]; then
|
||||
MYSQL_SERVICE_NAME=mysql
|
||||
if is_fedora && ! is_oraclelinux; then
|
||||
MYSQL_SERVICE_NAME=mariadb
|
||||
elif is_suse && systemctl list-unit-files | grep -q 'mariadb\.service'; then
|
||||
# Older mariadb packages on SLES 12 provided mysql.service. The
|
||||
# newer ones on SLES 12 and 15 use mariadb.service; they also
|
||||
# provide a mysql.service symlink for backwards-compatibility, but
|
||||
# let's not rely on that.
|
||||
MYSQL_SERVICE_NAME=mariadb
|
||||
fi
|
||||
fi
|
||||
|
||||
# Functions
|
||||
@ -92,8 +94,23 @@ function configure_database_mysql {
|
||||
# because the package might have been installed already.
|
||||
sudo mysqladmin -u root password $DATABASE_PASSWORD || true
|
||||
|
||||
# In case of Mariadb, giving hostname in arguments causes permission
|
||||
# problems as it expects connection through socket
|
||||
if is_ubuntu && [ "$MYSQL_SERVICE_NAME" == "mariadb" ]; then
|
||||
local cmd_args="-uroot -p$DATABASE_PASSWORD "
|
||||
else
|
||||
local cmd_args="-uroot -p$DATABASE_PASSWORD -h127.0.0.1 "
|
||||
fi
|
||||
|
||||
# In mariadb e.g. on Ubuntu socket plugin is used for authentication
|
||||
# as root so it works only as sudo. To restore old "mysql like" behaviour,
|
||||
# we need to change auth plugin for root user
|
||||
if [ "$MYSQL_SERVICE_NAME" == "mariadb" ]; then
|
||||
sudo mysql $cmd_args -e "UPDATE mysql.user SET plugin='' WHERE user='$DATABASE_USER' AND host='localhost';"
|
||||
sudo mysql $cmd_args -e "FLUSH PRIVILEGES;"
|
||||
fi
|
||||
# Update the DB to give user '$DATABASE_USER'@'%' full control of the all databases:
|
||||
sudo mysql -uroot -p$DATABASE_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$DATABASE_USER'@'%' identified by '$DATABASE_PASSWORD';"
|
||||
sudo mysql $cmd_args -e "GRANT ALL PRIVILEGES ON *.* TO '$DATABASE_USER'@'%' identified by '$DATABASE_PASSWORD';"
|
||||
|
||||
# Now update ``my.cnf`` for some local needs and restart the mysql service
|
||||
|
||||
@ -148,8 +165,11 @@ MYSQL_PRESEED
|
||||
[client]
|
||||
user=$DATABASE_USER
|
||||
password=$DATABASE_PASSWORD
|
||||
host=$MYSQL_HOST
|
||||
EOF
|
||||
|
||||
if ! is_ubuntu || [ "$MYSQL_SERVICE_NAME" != "mariadb" ]; then
|
||||
echo "host=$MYSQL_HOST" >> $HOME/.my.cnf
|
||||
fi
|
||||
chmod 0600 $HOME/.my.cnf
|
||||
fi
|
||||
# Install mysql-server
|
||||
@ -159,7 +179,7 @@ EOF
|
||||
install_package mariadb-server
|
||||
sudo systemctl enable $MYSQL_SERVICE_NAME
|
||||
elif is_ubuntu; then
|
||||
install_package mysql-server
|
||||
install_package $MYSQL_SERVICE_NAME-server
|
||||
else
|
||||
exit_distro_not_supported "mysql installation"
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user