How to Install MySQL 5.6
First head over here and
download MySQL 5.6.14 rpm’s under Oracle & Redhat Linux 6 section of
rpm’s.
You want to download
these rpm’s to your CentOS 6 server [As we will install 64bit version on MySQL
5.6] :
1.
Red Hat/Oracle Enterprise Linux ver. 6 (x86, 64-bit), RPM
Package – MySQL Server : MySQL-server-5.6.14-1.el6.x86_64.rpm
2.
Red Hat/Oracle Enterprise Linux ver. 6 (x86, 64-bit), RPM
Package – Shared components : MySQL-shared-5.6.14-1.el6.x86_64.rpm
3.
Red Hat/Oracle Enterprise Linux ver. 6 (x86, 64-bit), RPM
Package – Client Utilities : MySQL-client-5.6.14-1.el6.x86_64.rpm
To download on command
line [Make sure that you have wget utility installed, if not install it :
yum install wget
Now download the rpm's with wget utility:
wget
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
wget
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
wget
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
Make sure that Perl is installed on your server before you install MySQL, if not MySQL server rpm will complain that it cannot be installed. So its kind of pre-requisite.
To Install perl run :
yum install perl
Install MySQL 5.6 rpms
now :
Start with shared
libraries first and then work towards installing server and client utilities at
the very end.
rpm -ivh MySQL-shared-5.6.14-1.el6.x86_64.rpm
rpm -ivh MySQL-server-5.6.14-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.14-1.el6.x86_64.rpm
If you have conflicts with existing libs(install of
MySQL-server-5.6.10-1.el6.x86_64 conflicts with file from package
mysql-libs-5.1.66-2.el6_3.x86_64), please download shared-compact package and
do the following (Once complete, please re-install as stated above) :
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm/from/http://cdn.mysql.com/
rpm -Uvh
MySQL-shared-compat-5.6.10-1.el6.x86_64.rpm
On a successful install
you should be seeing the log below:
MySQL Server Installation
log:
Preparing... ########################################### [100%]
1:MySQL-server ###########################################
[100%]
2013-02-08 14:59:19 0 [Warning] TIMESTAMP with implicit DEFAULT
value is deprecated. Please use –explicit_defaults_for_timestamp server option
(see documentation for more details).
2013-02-08 14:59:19 2959 [Note] InnoDB: The InnoDB memory heap
is disabled
2013-02-08 14:59:19 2959 [Note] InnoDB: Mutexes and rw_locks use
GCC atomic builtins
2013-02-08 14:59:19 2959 [Note] InnoDB: ………
2013-02-08 14:59:19 2959 [Note] InnoDB: ………
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
WARNING: Found existing config file /usr/my.cnf on the system.
Because this file might be in use, it was not replaced, but was used in
bootstrap (unless you used –defaults-file) and when you later start the server.
The new default config file was created as /usr/my-new.cnf, please compare it
with your file and take the changes you need.
Its all done, lets set
some passwords, create user and grant access to outside clients for accessing
the database:
In MySQL 5.6 root has a
default password assigned and its located at /root/.mysql_secret file as
mention in MySQL server Installation log.
cat that file :
cat
/root/.mysql_secret
to get the password that
has been set for MySQL default root user
Now lets login to the
database server for the first time and set password. That’s the only first SQL
command that works before you can proceed any further. To do that we need to
start our newly installed database server.
service mysql start
Now login into database
server using MySQL client utility and change password. To login into database
server simply run command below and provide with the password that installation
generated for you in /root/.mysql_secret file.
mysql -uroot -p
Once you logged in, you
have to change your root users default password. You cannot run any others
commands.
To change MySQL 5.6
database server root password simply run this command :
SET PASSWORD FOR
'root'@'localhost' = PASSWORD('opensourcedbms');
Also there are other root
users in MySQL if you are familiar with its users table [root@127.0.0.1 ;
root@::1, root@hostname], once you login with superuser you can update all
of them later. Also once all this is done you can remove /root/.mysql_secret
file.
Now that you have set
root user password, create a super user to access database server from outside
server. Its generally not a good practice to grant root user access to outside
world.
CREATE USER
'superadmin'@'%' IDENTIFIED BY 'opensourcedbmsadmin';
GRANT ALL ON *.* TO 'superadmin'@'%'
WITH GRANT OPTION;
Now you can exit out of
mysql command line client [Type \q or quit to exit] and we can
use this newly created user to access this database server from outside world.
Before you can do that, make sure that your server firewall rules are updated
for granting this server to respond at port 3306 for outside world. First get out
of the mysql command line client and to add a new firewall rule to your CentOS
database server firewall rules and to do that edit
vi
/etc/sysconfig/iptables
file and add the
following line:
-A INPUT -m state
--state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
Save and exit out of the
file and restart iptables for the new rule to take effect. To restart iptables,
simply run the following command :
service iptables
restart
Last but not least make
sure that this new MySQL server is enabled to auto start when server restarts.
chkconfig mysql
--level 2345 on
Now you are ready to
connect to this database server from any host in your network. Simply open a
database client [MySQL Workbench / Navicat / SQLYog are few clients that you
can use to access it from GUI side of things] that you installed and provide
the new super user/password that you created and the host-name of this server
and there you will be in your new database server.
If you are running this
server in a virtual box environment, make sure that you do port forwarding (NAT
Only) to pass through 3306 database port to guest VM which can be done by going
to settings of your VM > Network > Advanced > Port forwarding. This is
more specific to Oracle Virtual Box.