MySQL

How to install MySQL on CentOS 7

Share on Social Media

Learn how to install MySQL on CentOS 7 with this comprehensive guide. Follow our step-by-step instructions to set up and configure MySQL efficiently on your CentOS 7 system. #centlinux #linux #mysql

What is MySQL?

MySQL Server Community Edition (CE) is the free version of world’s most popular open source database server. It is distributed under GPL License and supported by a large and active community of open source developers. There is also a commercial version of MySQL server, which is developed and maintained by Oracle Corporation.

Read Also: How to install MariaDB on Rocky Linux 9

MySQL Server 8 Community Edition Features

Main features of MySQL Server CE are.

  • Supports SQL and NoSQL
  • Pluggable Storage Engine Architecture
  • MySQL Replication
  • MySQL InnoDB Cluster
  • MySQL Router
  • MySQL Partitioning
  • MySQL Workbench

Checkout complete list of MySQL Server 8 features at MySQL official website.

Recommended Training for You: Mastering SQL (Using MySQL, Java, and Go)

Linux Server Specification

We have configured a CentOS 7 virtual machine with following specifications.

  • CPU – 3.4 Ghz (2 cores)
  • Memory – 2 GB
  • Storage – 20 GB
  • Operating System – CentOS 7.6
  • Hostname – mysql-server.example.com
  • IP Address – 192.168.116.180/24

Install MySQL Yum Repository

Connect with mysql-server.example.com using ssh as root user.

Download and install MySQL yum repository from MySQL official website.

# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
Retrieving https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
warning: /var/tmp/rpm-tmp.fJdAIJ: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql80-community-release-el7-3  ################################# [100%]

Build cache for MySQL yum repository.

# yum makecache fast
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp3.isra.edu.pk
 * extras: ftp3.isra.edu.pk
 * updates: ftp3.isra.edu.pk
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
mysql-connectors-community                               | 2.5 kB     00:00
mysql-tools-community                                    | 2.5 kB     00:00
mysql80-community                                        | 2.5 kB     00:00
updates                                                  | 3.4 kB     00:00
(1/5): mysql-connectors-community/x86_64/primary_db        |  41 kB   00:00
(2/5): mysql-tools-community/x86_64/primary_db             |  58 kB   00:00
(3/5): mysql80-community/x86_64/primary_db                 |  70 kB   00:01
(4/5): extras/7/x86_64/primary_db                          | 205 kB   00:01
(5/5): updates/7/x86_64/primary_db                         | 6.4 MB   00:15
Metadata Cache Created

Install MySQL on CentOS 7

We have added the MySQL yum repository, now we can install MySQL on CentOS 7 and relevant packages using yum command.

# yum install -y mysql-community-server

MySQL service is automatically enabled by the installer. Therefore, we are only required to start mysqld.service once.

# systemctl start mysqld.service

During first start-up, MySQL service generates a temporary password in /var/log/mysqld.log file.

Retrieve this password using following command.

# grep 'temporary password' /var/log/mysqld.log
2019-06-24T14:23:17.605740Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: B4gqaLFg6p_Y

Note down this password, we will use it later.

Securing MySQL Database Server

To configure and secure our MySQL database instance, we can use mysql_secure_installation command. We are also required to use temporary password to set a new password for root user.

# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Connect with MySQL database server using mysql command as root user.

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 11
Server version: 8.0.16 MySQL Community Edition - GPL

Copyright (c) 2000, 2019, 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              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql>

We have successfully install MySQL on CentOS 7.

This article does not address the usage of MySQL commands and SQL statements. Therefore, if you wish to learn MySQL architecture, commands and SQL statements, then we recommend you to read Murach’s MySQL (3rd Edition) (PAID LINK) by Mike Murach & Associates.

Final Thoughts

Installing MySQL on CentOS 7 can be straightforward when you follow the right steps. This guide provides detailed instructions to help you set up and configure MySQL efficiently. If you encounter any challenges or need professional assistance, I offer expert services to help with your MySQL installation and configuration.

For personalized support, please check out my Fiverr gig: MySQL Database Administrator. I provide comprehensive services to ensure your MySQL setup is optimized and running smoothly.

Thank you for following this guide, and I look forward to assisting you with your MySQL projects!

Alaric Bird

Alaric Bird is a seasoned Linux System Administrator with over a decade of experience in managing and optimizing Linux-based servers and infrastructure. Known for his expertise in server deployment, security hardening, and performance tuning, Alaric has a deep understanding of various Linux distributions, including Ubuntu, CentOS, and Red Hat Enterprise Linux. His skills extend to cloud platforms like AWS, where he effectively manages virtual private servers and services. Alaric is also proficient in scripting languages such as Bash and Python, which he uses to automate routine tasks, enhancing efficiency and reliability. With a strong commitment to continuous learning, he stays updated with the latest developments in open-source technologies and best practices. His problem-solving abilities, combined with excellent communication skills, make him a valuable asset to any IT team. In addition to his technical expertise, Alaric is passionate about mentoring junior administrators and fostering a collaborative environment.

Recent Posts

Puppy Linux: Fast and Simple OS

Puppy Linux is a fast, lightweight OS designed for speed and simplicity, perfect for old…

1 day ago

Change Apache Document Root in Linux

Learn how to change Apache document root in Linux by following this step-by-step guide. Adjust…

2 weeks ago

How to Change Apache Port in Linux

Discover how to change Apache port in Linux easily. Follow our simple guide to modify…

2 weeks ago

How to Create Virtual Host in Apache Server

Learn how to create a virtual host in Apache Server with this comprehensive guide. Set…

3 weeks ago

10 Practical Tasks for RHCSA Exam with Solutions

Discover 10 practical tasks for the RHCSA exam with step-by-step solutions. Boost your Linux skills…

3 weeks ago

Ultimate Fail2ban Configuration Guide

Discover the ultimate Fail2ban configuration guide. Learn how to set up, customize, and optimize Fail2ban…

4 weeks ago

This website uses cookies.