Skip to content

Instantly share code, notes, and snippets.

@guangbochen
Last active September 10, 2020 08:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guangbochen/7abd91caaf28801ded1820f36dd476a4 to your computer and use it in GitHub Desktop.
Save guangbochen/7abd91caaf28801ded1820f36dd476a4 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
[ -z "${MYSQL_PASSWD}" ] && MYSQL_PASSWD=root
[ -z "${MYSQL_ADMIN_USER}" ] && MYSQL_ADMIN_USER=wordpress
[ -z "${MYSQL_ADMIN_PASSWD}" ] && MYSQL_ADMIN_PASSWD=wordpress
mysql_install()
{
sudo apt update
cat <<EOF | sudo debconf-set-selections
mariadb-server-10.1 mysql-server/root_password password ${MYSQL_PASSWD}
mariadb-server-10.1 mysql-server/root_password_again password ${MYSQL_PASSWD}
EOF
if ! command -v mysql &> /dev/null; then
echo "mysql could not be found, installing."
sudo apt install -y mysql-server
else
echo "mysql is already installed."
fi
}
mysql_config()
{
sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
mysql -uroot -p <<MYSQL_SCRIPT
DROP USER IF EXISTS '$MYSQL_ADMIN_USER'@'localhost';
DROP USER IF EXISTS '$MYSQL_ADMIN_USER'@'%';
DROP DATABASE IF EXISTS $MYSQL_ADMIN_USER;
CREATE DATABASE $MYSQL_ADMIN_USER;
CREATE USER '$MYSQL_ADMIN_USER'@'localhost' IDENTIFIED BY '$MYSQL_ADMIN_PASSWD';
CREATE USER '$MYSQL_ADMIN_USER'@'%' IDENTIFIED BY '$MYSQL_ADMIN_PASSWD';
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_ADMIN_USER'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_ADMIN_USER'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
MYSQL_SCRIPT
echo "MySQL user created."
echo "DB Name: $MYSQL_ADMIN_USER"
echo "Username: $MYSQL_ADMIN_USER"
echo "Password: $MYSQL_ADMIN_PASSWD"
sudo systemctl restart mysql
}
mysql_install
mysql_config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment