Installing the latest MySQL 5.6 on Amazon Linux using official repos

In case you missed the announcement Monday, there are now official yum repositories for Fedora 18, 19 and Enterprise Linux 6 (Red Hat and Oracle Linux).

In my case however, I often use Amazon Web Services, and I find that Amazon Linux is just a little bit friendlier to use, since it has better mirror configuration out of the box.

The good news for me is that the official MySQL yum repositories (unofficially) work just fine. Here is an example installation:

sudo yum localinstall http://repo.mysql.com/mysql-community-release-el6-3.noarch.rpm
sudo yum install mysql-community-server
sudo service mysqld start

Configure mysqld to start on boot:

sudo chkconfig mysqld on
chkconfig --list mysqld

And that’s it, you’re all set up and running. One thing I noticed, is the configuration file included is very clean! This is because MySQL has improved all the defaults in 5.6:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

It doesn’t get much simpler than this. I love it!

Norvald has also blogged about some of the other improvements to the packaging (systemd,
tmpfiles.d, SELinux, multilib).

Published by

morgo

I joined MySQL AB in 2006, left, and am now back at Oracle working on the MySQL team. I’ve also worked at Percona and InPowered.

  • arangde

    What is difference in mysql-server and mysql-community-server ?
    Thanks

    • MySQL is available as both Enterprise Edition (subscription service) and Community Edition.

      The Official repos include the ‘community’ label to avoid any ambiguity, but if you are currently using ‘mysql-server’, good chance it’s the same thing 🙂

      • arangde

        Thank you for quick reply!

  • Any idea how to install postfix after installing MySQL 5.6? It’s trying to install mysql55 for dependencies and I’m getting the following error:

    file /usr/lib64/mysql/libmysqlclient.so.18 from install of mysql55-libs-5.5.40-1.3.amzn1.x86_64 conflicts with file from package mysql-community-libs-5.6.21-2.el6.x86_64

    • Look for the oldest “mysql55” packages installed:

      yum list installed | grep mysql

      then remove them:

      yum remove mysql55-libs.x86_64

      You can also try to clean the packages cache:

      yum clean packages

      • The problem is actually that postfix has a dependency on mysql55-libs, so removing the mysql libs removed postfix, trying to re-install postfix is trying to install mysql55-libs.

  • Thanks for these tips, worked nicely! I only had to replace `sudo yum localinstall http://repo.mysql.com/mysql-community-release-el6-3.noarch.rpm` with `sudo yum localinstall http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm` (el6-3 >>> el6-5)

  • Manoj

    ec2 instance AWS, i couldnt connect open wordpress desk… error: database connection.. as far i checked all the way of databse name,passward and username .. all are true,,, . what would be the reason other than wp-config.php

  • Manoj

    how i can delete my database in putty and make new with new name and passward

  • The most recent version of the AWS Amazon Linux server does not include systemd. When you pull from the official repo and yum install, it requires systemd.