MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). SQL is the most popular language for adding, accessing and managing content in a database. It is most noted for its quick processing, proven reliability, ease and flexibility of use.
To install MySQL by running the following commands.
dnf install @mysql
[root@vps ~]# dnf install @mysql Last metadata expiration check: 0:09:24 ago on Thu 25 Feb 2021 12:06:21 PM EST. Dependencies resolved. ================================================================================ Package Arch Version Repo Size ================================================================================ Installing group/module packages: mysql-server x86_64 8.0.21-1.module_el8.3.0+2049+47abd494 appstream 22 M Installing dependencies: checkpolicy x86_64 2.9-1.el8 baseos 347 k libaio x86_64 0.3.112-1.el8 baseos 32 k mariadb-connector-c-config noarch 3.1.11-2.el8_3 appstream 14 k mecab x86_64 0.996-1.module_el8.3.0+2049+47abd494.9
Start the MySQL service and enable it to automatically start on boot by running the following command.
systemctl enable --now mysqld systemctl start mysqld
To check the MySQL service by running the following command.
systemctl status mysqld
[root@vps ~]# systemctl status mysqld ● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor pres> Active: active (running) since Thu 2021-02-25 12:19:01 EST; 16s ago Process: 7821 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, st> Process: 7695 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (> Process: 7670 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, stat> Main PID: 7777 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 11451) Memory: 432.1M CGroup: /system.slice/mysqld.service └─7777 /usr/libexec/mysqld --basedir=/usr
Finally, you will want to secure your MySQL installation by issuing the following command.
[root@vps ~]# mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Please set the password for root here. New password: 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!
Once secured, you can connect to MySQL and review the existing databases on your database server by using the following command.
mysql -e "SHOW DATABASES;" -p
[root@vps ~]# mysql -e "SHOW DATABASES;" -p Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+