Saturday, January 3, 2015

MySQL- How to Install


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/

Now start installing rpms onto your server:
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.

Thx

AKTechnosoft Corp
A Database Consulting Company