Wednesday, September 7, 2011

Install MySQL 5.5.15 on Fedora 15/14, CentOS/Red Hat (RHEL) 5.6/6

Mysql is one of the most populor open source Relational database management system.

1. Change root user
su -
## OR ##
sudo -i

2. Install Remi repository
## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

## CentOS 5 and Red Hat (RHEL) 5 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

3. Check Available MySQL versions

yum --enablerepo=remi,remi-test list mysql mysql-server

4. Update or Install MySQL 5.5.15

yum --enablerepo=remi install mysql mysql-server

5. Start MySQL server and autostart MySQL on boot

/etc/init.d/mysqld start
## OR ##
service mysqld start

chkconfig --levels 235 mysqld on

6. MySQL Secure Installation

    * Set (Change) root password
    * Remove anonymous users
    * Disallow root login remotely
    * Remove test database and access to it
    * Reload privilege tables

Start MySQL Secure Installation with following command

/usr/bin/mysql_secure_installation

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!



Note: If you don’t want some reason, do a “MySQL Secure Installation” then at least it’s very important to change the root user’s password

mysqladmin -u root password [your_password_here]

## Example ##
mysqladmin -u root password myownsecrectpass

7. Connect to MySQL database (localhost) with password

mysql -u root -p

## OR ##
mysql -h localhost -u root -p

8. Create Database, Create MySQL User and Enable Remote Connections to MySQL Database

This example uses following parameters:

    * DB_NAME = testdb
    * USER_NAME = test_user
    * REMOTE_IP = 10.1.1.35
    * PASSWORD = password
    * PERMISSIONS = ALL

## CREATE DATABASE ##
mysql> CREATE DATABASE testdb;

## CREATE USER ##
mysql> CREATE USER 'test_user'@'10.1.1.35' IDENTIFIED BY 'password';

## GRANT PERMISSIONS ##
mysql> GRANT ALL ON testdb.* TO test_user@'10.1.1.35';

##  FLUSH PRIVILEGES, Tell the server TO reload the GRANT TABLES  ##
mysql> FLUSH PRIVILEGES;

Enable Remote Connection to MySQL Server –> Open MySQL Port (3306) on Iptables Firewall (as root user again)

1. Edit /etc/sysconfig/iptables file:

nano -w /etc/sysconfig/iptables

2. Add following line before COMMIT:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

3. Restart Iptables Firewall:

service iptables restart
## OR ##
/etc/init.d/iptables restart

4. Test remote connection:

mysql -h dbserver_name_or_ip_address -u test_user -p testdb

1 comment:

  1. I want to and will install the mysql database on my fedora, thanks already to guide how to install.

    ReplyDelete