Created
May 14, 2013 19:26
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
hi, after using the scripts, the mysql server service will not start, an error in the PID file.
Is there a solution?