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.
[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
[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:
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.
[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.
[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>
- 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
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.
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.
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.
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.
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.
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.
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.