How to Install MySQL 8.0 on CentOS 8 / RHEL 8

MySQL is the most popular, free and open-source relational database management platform, which is used to host multiple databases on any single server by allowing multi-user access to each database.

The latest MySQL 8.0 version is available to install from the default AppStream repository using the MySQL module that is enabled by default on the CentOS 8 and RHEL 8 systems.

There is also MariaDB 10.3 database version is available to install from the default AppStream repository, which is “drop-in replacement” for MySQL 5.7, with some restrictions. If your application is not supported with MySQL 8.0, then I recommend you to install MariaDB 10.3.

In this article, we will walk through you the process of installing the latest MySQL 8.0 version on CentOS 8 and RHEL 8 using the default AppStream repository via YUM utility.

Note: The instructions provided in this article will only work if you have enabled the Red Hat subscription on RHEL 8.

Install MySQL 8.0 on CentOS8 and RHEL 8

The latest version of the MySQL 8.0 is available to install from the default Application Stream repository on CentOS 8 and RHEL 8 systems using the following yum command.

# yum -y install @mysql

The @mysql module will install the most recent version of MySQL with all dependencies.

Install MySQL on CentOS 8 Using AppStream
Install MySQL on CentOS 8 Using AppStream

Once the installation of MySQL completes, start the MySQL service, enable it to automatically start at system boot and verify the status by running the following commands.

# systemctl start mysqld
# systemctl enable --now mysqld
# systemctl status mysqld
Manage MySQL Service in CentOS 8
Manage MySQL Service in CentOS 8

Now secure the MySQL installation by running the security script that carries several security-based operations such as setting the root password, removing anonymous users, disallow root login remotely, remove test database and reload privilege.

# mysql_secure_installation
Secure MySQL Installation in CentOS 8
Secure MySQL Installation in CentOS 8

Once MySQL installation is secured, you can log in to the MySQL shell, and start creating new databases and users.

# mysql -u root -p
mysql> create database tecmint;
mysql> GRANT ALL ON tecmint.* TO [email protected] IDENTIFIED BY 'ravi123';
mysql> exit

That’s all! In this article, we’ve explained how to install MySQL 8.0 on CentOS 8 and RHEL 8. If you have any questions or feedback, do share it with us in the comment section below.

Tutorial Feedback...
Was this article helpful? If you don't find this article helpful or found some outdated info, issue or a typo, do post your valuable feedback or suggestions in the comments to help improve this article...

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

8 thoughts on “How to Install MySQL 8.0 on CentOS 8 / RHEL 8”

  1. The line “systemctl start mysqld” can be removed as the –now in “systemctl enable –now mysqld” will enable and start the process. Otherwise, remove --now as it is redundant.

  2. Upstream (from Oracle, the builders of MySQL) the version I saw earlier was more up to date. So it’s fine to pick up the version from RedHat / CentOS but also it may be of interest to follow the upstream repo provided by Oracle for MySQL 8 which gives you a compatible rpm mysql-community-server which is likely to be the true “latest” version.

    RH / CentOS have patched versions and it’s good they provide this out of the box but if you want to be fully up to date using the repo provided by Oracle is probably better (e.g. see:

  3. Hi Anusha, thanks for your article!

    MySQL 8 cannot permit shorthand for creating user and permissions :(

    You have to create before the user:
    CREATE USER ''@'localhost' IDENTIFIED BY '';
    and then you can assign the permission:
    GRANT ALL ON .* TO ''@'localhost';

    Hope you can help someone :)
    Have fun and stay safe!

    • The changes in MySQL 8.0 are deliberate to make user creation/removal/changes explicit and providing grants separately. The older behaviour could generate security issues if you “added grants” to a user that was not configured as this implicitly could create the user.


Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.