Skip to content

Instantly share code, notes, and snippets.

@e23z
Created July 25, 2017 15:14
Show Gist options
  • Save e23z/ba3a2757dc478c5fc87268dc394c8e61 to your computer and use it in GitHub Desktop.
Save e23z/ba3a2757dc478c5fc87268dc394c8e61 to your computer and use it in GitHub Desktop.
[MySQL Install & Config] A simple script to install and configure MySQL on a Ubuntu 16.04 server. #scripts #mysql #server #configuration
#!/bin/bash
clear
cd ~
read -s -p 'Sudo password: ' PASSWORD
echo ""
echo $PASSWORD | sudo -Sk sudo apt-get update
echo "Installing mysql..."
sudo apt-get install -y mysql-server-5.7
echo "Securing mysql instalation..."
sudo mysql_secure_installation
echo "Configuring mysql..."
sudo sh -c "echo '' >> /etc/mysql/my.cnf"
sudo sh -c "echo '[mysqld]' >> /etc/mysql/my.cnf"
sudo sh -c "echo 'sql-mode=\"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"' >> /etc/mysql/my.cnf"
sudo sh -c "echo 'max_allowed_packet=128M' >> /etc/mysql/my.cnf"
sudo sh -c "echo 'bind_address=0.0.0.0' >> /etc/mysql/my.cnf"
echo "Restarting mysql server..."
sudo service mysql restart
echo "Adding mysql port to firewall..."
sudo ufw allow in on tun0 from 10.0.0.0/16 to any port 3306
sleep 10
echo "Creating the first user and database..."
echo ""
read -p 'New mysql database name: ' DATABASE
read -p 'New mysql user: ' USER
read -s -p 'New mysql password: ' USER_PASSWORD
echo ""
mysql -p -u root <<EOF
CREATE DATABASE IF NOT EXISTS $DATABASE;
CREATE USER IF NOT EXISTS '$USER'@'%' IDENTIFIED BY '$USER_PASSWORD';
GRANT ALL PRIVILEGES ON $DATABASE.* TO '$USER'@'%';
FLUSH PRIVILEGES;
EOF
echo "Database and users created!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment