Skip to content

Instantly share code, notes, and snippets.

@michfield
Created May 14, 2013 19:26
Show Gist options
  • Save michfield/5578726 to your computer and use it in GitHub Desktop.
Save michfield/5578726 to your computer and use it in GitHub Desktop.
Shell script to install MySQL 5.6.11 on Ubuntu Raring Ringtail 13.04 x64
#!/usr/bin/env bash
#
# Install MySQL server
#
# Author:
# Colovic Vladan, First Beat Media
#
download_dir=/srv/tmp/download
download_url=https://dl.dropbox.com/u/191471/FirstBeatMedia/mysql-5.6.11-debian6.0-x86_64.deb
mysql_deb=$download_dir/mysql-5.6-x86_64.deb
_kill_mysql() {
# Consider using `killall -r mysqld`
#
ps -ef | grep -iE "mysqld" | grep -ivE "grep"
if [ $? -eq 0 ] ; then
ps -ef | grep -iE "mysqld" | grep -ivE "grep" | awk '{print $2}' | xargs sudo kill -9
fi
}
mkdir -p $download_dir
echo "Downloading package..."
test -f "$mysql_deb" || wget --quiet $download_url -O $mysql_deb
echo "Stop MySQL server..."
sudo service mysql stop
# Just in case, ensure any mysql is cleaned from memory
_kill_mysql
# The libaio library, which has been used since MySQL 5.5.4, is now
# linked into mysqld dynamically rather than statically. It needs to be
# already on your Linux system.
#
echo "Installing package 'libaio'..."
apt-get -y -qq install libaio1
echo "Installing MySQL 5.6..."
dpkg -i $mysql_deb
echo "Adding mysql user & group..."
groupadd mysql
useradd -r -g mysql mysql
# Include the settings immediatly
. /etc/profile.d/mysql-server.sh
cd /opt/mysql/server-5.6
chown -R mysql .
chgrp -R mysql .
echo "Initialize data..."
scripts/mysql_install_db --user=mysql >/dev/null
chown -R root .
chown -R mysql data
cp support-files/mysql.server /etc/init.d/mysql
echo "Temporary MySQL instance opened to everyone..."
echo -e "[mysqld]\nskip-grant-tables" >/etc/mysql/conf.d/skip_grant_tables.cnf
service mysql restart
echo "Setting root password..."
mysql -u root \
-e "UPDATE mysql.user SET Password=PASSWORD('yourpass') WHERE User='root';" \
-e "FLUSH PRIVILEGES;"
rm -rf /etc/mysql/conf.d/skip_grant_tables.cnf
echo "Now restart MySQL server as normal..."
service mysql restart
# I did this in two steps on purpose
echo "Secure the whole installation..."
mysql -u root --password=yourpass \
-e "DELETE FROM mysql.user WHERE User='';" \
-e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" \
-e "DROP DATABASE test;" \
-e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" \
-e "FLUSH PRIVILEGES;"
echo "Include shared libraries"
echo "/opt/mysql/server-5.6/lib" > /etc/ld.so.conf.d/mysql.conf
ldconfig
echo "Finished installing MySQL."
@fjbardelli
Copy link

hi, after using the scripts, the mysql server service will not start, an error in the PID file.

Is there a solution?

@dkavraal
Copy link

same problem here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment