2020-10-07 13:49:40 +05:00
|
|
|
#!/bin/bash -e
|
2019-12-13 09:48:00 -05:00
|
|
|
################################################################################
|
|
|
|
|
## File: mysql.sh
|
|
|
|
|
## Desc: Installs MySQL Client
|
|
|
|
|
################################################################################
|
|
|
|
|
|
2021-12-07 23:38:14 +03:00
|
|
|
source /etc/os-release
|
2021-12-08 16:02:06 +03:00
|
|
|
source $HELPER_SCRIPTS/os.sh
|
2019-12-13 09:48:00 -05:00
|
|
|
|
2020-06-25 16:21:08 +07:00
|
|
|
# Mysql setting up root password
|
2019-12-13 09:48:00 -05:00
|
|
|
MYSQL_ROOT_PASSWORD=root
|
|
|
|
|
echo "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
|
|
|
|
|
echo "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
|
|
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
# Ubuntu's repo now contains 8.0.28 which is buggy,
|
|
|
|
|
# see https://bugs.mysql.com/bug.php?id=105288
|
2021-01-08 16:02:09 +03:00
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
if isUbuntu20 ; then
|
|
|
|
|
mkdir -p /tmp/mysql
|
|
|
|
|
pushd /tmp
|
2019-12-13 09:48:00 -05:00
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
# Mandatory dependency
|
|
|
|
|
apt-get install -y libmecab2 libaio1
|
2020-06-25 16:21:08 +07:00
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
wget -q https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.26-1ubuntu${VERSION_ID}_amd64.deb-bundle.tar
|
|
|
|
|
tar -xf mysql-server_8.0.26-1ubuntu${VERSION_ID}_amd64.deb-bundle.tar -C /tmp/mysql
|
2021-12-07 23:38:14 +03:00
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
pushd mysql
|
2021-12-07 23:38:14 +03:00
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
# Remove debs with debug info
|
|
|
|
|
rm mysql-community-*debug*.deb
|
|
|
|
|
|
|
|
|
|
mysql_debs=(
|
|
|
|
|
mysql-common*
|
|
|
|
|
mysql-community-client-plugins*
|
2021-12-18 20:28:48 +03:00
|
|
|
mysql-community-client-core*
|
2021-12-08 16:02:06 +03:00
|
|
|
mysql-community-client*
|
|
|
|
|
mysql-client*
|
2021-12-18 20:28:48 +03:00
|
|
|
mysql-community-server-core*
|
2021-12-08 16:02:06 +03:00
|
|
|
mysql-community-server*
|
|
|
|
|
mysql-server*
|
|
|
|
|
libmysqlclient21*
|
|
|
|
|
libmysqlclient-dev*
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
for package in ${mysql_debs[@]}; do
|
|
|
|
|
dpkg -i $package
|
|
|
|
|
done
|
|
|
|
|
|
2021-12-14 21:46:30 +03:00
|
|
|
# Install the /etc/init.d/mysql script for backward compatibility with sysVinit
|
|
|
|
|
cp $HELPER_SCRIPTS/mysql-service-helper.sh /etc/init.d/mysql
|
|
|
|
|
# Fix permission
|
|
|
|
|
chmod 755 /etc/init.d/mysql
|
|
|
|
|
|
2021-12-08 16:02:06 +03:00
|
|
|
# Start mysql to change its settings
|
|
|
|
|
systemctl start mysql.service
|
|
|
|
|
# Enable mysql log-in without sudo by activation of the mysql_native_password plugin
|
|
|
|
|
mysql -s -N -h localhost -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;"
|
|
|
|
|
else
|
|
|
|
|
export ACCEPT_EULA=Y
|
|
|
|
|
|
|
|
|
|
# Install MySQL Client
|
|
|
|
|
apt-get install mysql-client -y
|
|
|
|
|
|
|
|
|
|
# Install MySQL Server
|
|
|
|
|
apt-get install -y mysql-server
|
|
|
|
|
|
|
|
|
|
#Install MySQL Dev tools
|
|
|
|
|
apt install libmysqlclient-dev -y
|
|
|
|
|
fi
|
2021-12-07 23:38:14 +03:00
|
|
|
|
2020-03-05 10:57:16 +03:00
|
|
|
# Disable mysql.service
|
2020-04-27 14:48:28 +03:00
|
|
|
systemctl is-active --quiet mysql.service && systemctl stop mysql.service
|
|
|
|
|
systemctl disable mysql.service
|
2021-01-08 16:02:09 +03:00
|
|
|
|
|
|
|
|
invoke_tests "Databases" "MySQL"
|