Table of Contents

Install MySQL

This page shows how to install MySQL on CentOS 6 64bit.

Prerequisites

You must have a CentOS machine already set up in accordance with the the Install CentOS 6 guide.

Install MySQL

Install the MySQL server. Run all the following commands as root.

yum -y install mysql mysql-server

Configure MySQL server to start automatically on system boot.

chkconfig mysqld on

Start the MySQL server.

service mysqld start

Secure MySQL

Run the following command to set good security measures on the database.

mysql_secure_installation

# Current root password is nothing (e.g. just press enter without typing anything else) # Set Root password for database (Use administrator password) # Remove anonymous users # Disallow root login remotely # Remove test database and access to it # Reload privilege tables now

Move MySQL Data Store

We can move the data store to a separate partition. Assuming /data exists (which it will for a lot of our Linux servers), move the MySQL data directory to the second disk.

service mysqld stop
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
su - mysql
cp -R /var/lib/mysql/* /data/mysql
# Note: For the following command, ignore the message about not being able to delete some directories. That is what we want.
rm -f /data/mysql/*
exit

Edit /etc/my.cnf

sed -i "s/\/var\/lib\/mysql/\/data\/mysql/g" /etc/my.cnf
sed -i "s/\/var\/lib\/mysql\/mysql.sock/\/data\/mysql\/mysql.sock/g" /etc/my.cnf

Also run the following

FILENAME=/etc/my.cnf
echo '' >> $FILENAME
echo '[client]' >> $FILENAME
echo 'socket = /data/mysql/mysql.sock' >> $FILENAME

Edit /etc/php.ini

sed -i "s/mysql.default_socket\ =/mysql.default_socket\ =\ \/data\/mysql\/mysql.sock/g" /etc/php.ini
sed -i "s/mysqli.default_socket\ =/mysqli.default_socket\ =\ \/data\/mysql\/mysql.sock/g" /etc/php.ini

Configure SELinux to allow MySQL data to be used from the separate drive.

semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql

Start MySQL

service mysqld start

Restart Apache web server to pickup the PHP changes.

service httpd restart

Install PHPMyAdmin

For installing some PHP modules (like php-mycrypt, etc which is needed for phpMyAdmain), we need to enable EPEL.

yum -y install php php-mysql php-common php-gd php-mbstring php-mcrypt php-xml php-soap
yum -y install phpMyAdmin
service httpd restart

View the interface at http://machine/phpMyAdmin.