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 ravi@localhost 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.

Anusha Saive
Anusha worked for many years in the IT industry as a Project Manager, and also a senior writer and editor at Tecmint. She is a huge fan of Linux and is passionate about writing Linux and technology-related stuff.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

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.

    Reply
  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: https://downloads.mysql.com/)

    Reply
  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!

    Reply
    • 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.

      Reply

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.