As part of uncovering a new security improvement in MySQL 5.6 with the default installation being secured with a unique root MySQL password, the MySQL provided rpm’s installed the MySQL configuration file in /usr.
I feel this maybe a bug, however this is just as an explanation for others to comment on.
The following steps reproduces this.
- Launch a CentOS 6.4 AWS EC2 Instance
LOG=/tmp/create-instance.tmp.$$ INSTANCE_TYPE=m1.medium ec2-run-instances ami-eb6b0182 --instance-type ${INSTANCE_TYPE} --region us-east-1 --availability-zone us-east-1b --key db --group db | tee ${LOG} INSTANCE=`grep ^INSTANCE ${LOG} | awk '{print $2}'` ec2-describe-instances ${INSTANCE} | tee ${LOG} while [ `grep ^INSTANCE ${LOG} | awk '{print $6}'` != 'running' ] ; do cat ${LOG}; sleep 5; ec2-describe-instances ${INSTANCE} | tee ${LOG}; done SERVER=`grep ^INSTANCE ${LOG} | awk '{print $4}'` echo "#instance=${INSTANCE},server=${SERVER}" #instance=i-xxx,server=ec2-xxx.compute-1.amazonaws.com
- Connect to server
ssh -i ~/.ssh/db.pem root@ec2-xxx.compute-1.amazonaws.com
- Install software
yum update -y # Remove the Postfix MySQL dependency rpm -qa | grep -i mysql rpm -e --nodeps mysql-libs-5.1.69-1.el6_4.x86_64 # Just to prove no config here ls -l /etc/my.cnf ls: cannot access /etc/my.cnf: No such file or directory ls -l /usr/my.cnf ls: cannot access /usr/my.cnf: No such file or directory # Install MySQL prerequisites yum install -y libaio perl cd /tmp yum install -y wget wget http://cdn.mysql.com/Downloads/MySQL-5.6/MySQL-5.6.13-1.el6.x86_64.rpm-bundle.tar tar xvf MySQL-5.6.13-1.el6.x86_64.rpm-bundle.tar rpm -ivh MySQL*.rpm
- The results of the installation of the default MySQL 5.6 rpms.
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD' will be accepted. See the manual for the semantics of the 'password expired' flag. Also, the account for the anonymous user has been removed. In addition, you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test database. This is strongly recommended for production servers. See the manual for more instructions. Please report any problems with the /usr/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com New default config file was created as /usr/my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings
As you can see via the rpm installation instructions, a new configuration file was created in “/usr/my.cnf”
$ cat /usr/my.cnf # 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 # These are commonly set, remove the # and set as required. # basedir = ..... # datadir = ..... # port = ..... # server_id = ..... # socket = ..... # 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 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES