How to Install and Securing MySQL on CentOS 6.4 VPS

MySQL is one of the most widely used databases on the internet, particularly for content management and blogging sites. It stores and retrieves data for blogs, websites, and applications.

This guide will walk you through the process of installing and securing MySQL on a CentOS 6.4 virtual private server (VPS) or a dedicated MySQL database server. For more information on MySQL, you can visit their website at www.mysql.com.

Installing MySQL Database Server

To install MySQL Database Server, you will use the yum command. The command to use is:

yum install mysql mysql-server -y

This command will install the MySQL server and client on your CentOS system. The “-y” option tells yum to automatically answer “yes” to any prompts, allowing the installation to proceed without your intervention.

Example:

[root@centos64 ~]# yum install mysql mysql-server -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.upsi.edu.my
 * epel: kartolo.sby.datautama.net.id
 * extras: mirror.upsi.edu.my
 * updates: mirror.upsi.edu.my
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.x86_64 0:5.1.69-1.el6_4 will be installed
--> Processing Dependency: mysql-libs = 5.1.69-1.el6_4 for package: mysql-5.1.69-1.el6_4.x86_64
---> Package mysql-server.x86_64 0:5.1.69-1.el6_4 will be installed
--> Processing Dependency: perl-DBI for package: mysql-server-5.1.69-1.el6_4.x86_64
--> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.69-1.el6_4.x86_64
--> Processing Dependency: perl(DBI) for package: mysql-server-5.1.69-1.el6_4.x86_64
--> Running transaction check
---> Package mysql-libs.x86_64 0:5.1.67-1.el6_3 will be updated
---> Package mysql-libs.x86_64 0:5.1.69-1.el6_4 will be an update
---> Package perl-DBD-MySQL.x86_64 0:4.013-3.el6 will be installed
---> Package perl-DBI.x86_64 0:1.609-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch               Version                    Repository           Size
====================================================================================================
Installing:
 mysql                      x86_64             5.1.69-1.el6_4             updates             907 k
 mysql-server               x86_64             5.1.69-1.el6_4             updates             8.7 M
Installing for dependencies:
 perl-DBD-MySQL             x86_64             4.013-3.el6                base                134 k
 perl-DBI                   x86_64             1.609-4.el6                base                705 k
Updating for dependencies:
 mysql-libs                 x86_64             5.1.69-1.el6_4             updates             1.2 M

Transaction Summary
====================================================================================================
Install       4 Package(s)
Upgrade       1 Package(s)

Total download size: 12 M
Downloading Packages:
(1/5): mysql-5.1.69-1.el6_4.x86_64.rpm                                       | 907 kB     00:07
(2/5): mysql-libs-5.1.69-1.el6_4.x86_64.rpm                                  | 1.2 MB     00:12
(3/5): mysql-server-5.1.69-1.el6_4.x86_64.rpm                                | 8.7 MB     01:30
(4/5): perl-DBD-MySQL-4.013-3.el6.x86_64.rpm                                 | 134 kB     00:00
(5/5): perl-DBI-1.609-4.el6.x86_64.rpm                                       | 705 kB     00:06
----------------------------------------------------------------------------------------------------
Total                                                               101 kB/s |  12 MB     01:57
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : mysql-libs-5.1.69-1.el6_4.x86_64                                                 1/6
  Installing : perl-DBI-1.609-4.el6.x86_64                                                      2/6
  Installing : perl-DBD-MySQL-4.013-3.el6.x86_64                                                3/6
  Installing : mysql-5.1.69-1.el6_4.x86_64                                                      4/6
  Installing : mysql-server-5.1.69-1.el6_4.x86_64                                               5/6
  Cleanup    : mysql-libs-5.1.67-1.el6_3.x86_64                                                 6/6
  Verifying  : mysql-libs-5.1.69-1.el6_4.x86_64                                                 1/6
  Verifying  : perl-DBD-MySQL-4.013-3.el6.x86_64                                                2/6
  Verifying  : perl-DBI-1.609-4.el6.x86_64                                                      3/6
  Verifying  : mysql-server-5.1.69-1.el6_4.x86_64                                               4/6
  Verifying  : mysql-5.1.69-1.el6_4.x86_64                                                      5/6
  Verifying  : mysql-libs-5.1.67-1.el6_3.x86_64                                                 6/6

Installed:
  mysql.x86_64 0:5.1.69-1.el6_4                 mysql-server.x86_64 0:5.1.69-1.el6_4

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:4.013-3.el6                 perl-DBI.x86_64 0:1.609-4.el6

Dependency Updated:
  mysql-libs.x86_64 0:5.1.69-1.el6_4

Complete!

Starting MySQL Database Server

Once the installation is complete, you will want to ensure that the MySQL daemon starts at boot. You can do this by using the chkconfig command:

chkconfig mysqld on

After setting the MySQL daemon to start at boot, you can start the MySQL Database Server with the following command:

service mysqld start

Example:

[root@centos64 ~]# chkconfig mysqld on
[root@centos64 ~]# service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h centos64.ehowstuff.local password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

Securing MySQL Database Server

Securing your MySQL Database Server is a crucial step. This includes setting up the password for the MySQL root user, removing anonymous users, disallowing root login remotely, and removing the test database and access. You can do all of this by running the mysql_secure_installation script:

/usr/bin/mysql_secure_installation

This script will guide you through the process of securing your MySQL installation. It will prompt you to set a root password, remove anonymous users, disallow root login remotely, and remove the test database and access.

See also  How to SSH Without Password on Linux

Example:

[root@centos64 ~]# /usr/bin/mysql_secure_installation




NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


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!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!


Testing the Installation

After securing your MySQL Database Server, you should test the installation by logging into the MySQL Server using the root password you defined earlier:

mysql -u root -p

You will be prompted to enter the root password. Once logged in, you can display the databases in your MySQL server by using the “show databases;” command.

See also  How to Secure OpenSSH (SSHD) on Linux

Example:

[root@centos64 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.1.69 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.01 sec)

mysql>

Commands Mentioned

  • yum install mysql mysql-server -y – Installs MySQL server and client
  • chkconfig mysqld on – Sets the MySQL daemon to start at boot
  • service mysqld start – Starts the MySQL Database Server
  • /usr/bin/mysql_secure_installation – Secures the MySQL Database Server
  • mysql -u root -p – Logs into the MySQL Server as root
  • show databases; – Displays the databases in the MySQL server

Conclusion

Installing and securing MySQL on a CentOS 6.4 VPS or dedicated server is a straightforward process that involves a series of steps. By following this guide, you have learned how to install MySQL using the yum command, make the MySQL daemon start at boot, secure your MySQL Database Server, and test the installation by logging into the MySQL Server.

See also  How to Add the RPMforge Repository on CentOS 5/RHEL 5 Linux Server

Remember, securing your MySQL Database Server is a crucial step in protecting your data from unauthorized access.

For more in-depth guides on web servers, you can visit our pages on Apache, Nginx, and LiteSpeed. If you’re interested in different types of hosting, we have detailed explanations on dedicated server hosting, VPS hosting, cloud hosting, and shared hosting.

Remember, the key to a successful web server setup lies in understanding the tools at your disposal and how to use them effectively.

Happy hosting!

FAQs

  1. What is the purpose of the yum command in the installation process?

    The yum command is used in CentOS and other RPM-based Linux distributions to manage packages. In this context, it’s used to install the MySQL server and client on the system.

  2. What does the mysql_secure_installation script do?

    The mysql_secure_installation script is a security script that comes with MySQL. It’s designed to perform several important security-related operations such as setting a root password, removing anonymous users, disallowing root login remotely, and removing the test database and access.

  3. Why is it important to secure the MySQL Database Server?

    Securing the MySQL Database Server is crucial to protect sensitive data from unauthorized access. By setting a strong root password, removing anonymous users, disallowing root login remotely, and removing the test database, you can significantly reduce the risk of a security breach.

  4. How can I verify that the MySQL Database Server has been installed correctly?

    You can verify the installation by logging into the MySQL Server using the root password you defined during the security setup. Once logged in, you can run the “show databases;” command to display the databases in your MySQL server.

  5. What is the purpose of the chkconfig command in this process?

    The chkconfig command is used to update and query runlevel information for system services. In this context, it’s used to ensure that the MySQL daemon starts automatically at boot.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *