如何在CentOS / RHEL 8上安装MySQL 8.0

MySQL是一个开源的关系数据库管理系统。目前,它是由Oracle Corporation开发的。 MySQL 8是可用于安装和使用生产应用程序的最新版本。 MySQL 8.0有许多改进,并且是以前版本的两倍。在此版本中,MySQL团队包括一个文档存储,用于使用单个数据库开发SQL和NoSQL文档应用程序。

本教程将帮助您在CentOS 8和RHEL 8系统上安装MySQL 8.0。

第1步-安装MySQL

可以在CentOS 8 AppStrem存储库中找到MySQL 8软件包。使用以下命令安装所需的软件包:这还将安装几个相关的软件包。

sudo dnf -y install @mysql

安装完成后,启用MySQL服务并在系统启动时自动启动它。还要首次手动启动该服务。

sudo systemctl enable mysqld.service
sudo systemctl start mysqld.service

接下来,使用以下命令检查服务的当前状态:

sudo systemctl status mysqld.service
● mysqld.service - MySQL 8.0 database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-02-12 09:00:31 UTC; 32s ago
  Process: 15039 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 14912 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCC>
  Process: 14888 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 14996 (mysqld)
   Status: "Server is operational"
    Tasks: 39 (limit: 17963)
   Memory: 535.1M
   CGroup: /system.slice/mysqld.service
           └─14996 /usr/libexec/mysqld --basedir=/usr

Feb 12 09:00:23 tecadmin systemd[1]: Starting MySQL 8.0 database server...
Feb 12 09:00:23 tecadmin mysql-prepare-db-dir[14912]: Initializing MySQL database
Feb 12 09:00:31 tecadmin systemd[1]: Started MySQL 8.0 database server.

第3步-保护您的MySQL安装

MySQL安装完成。现在,您无需密码即可连接到MySQL服务器,但是建议您确保MySQL安装的安全。 MySQL软件包提供了一个应用安全性的mysql_secure_installation命令。只需在终端中运行以下命令:

sudo mysql_secure_installation

按照屏幕上的说明进行操作。以下是需要用户输入的详细信息。

  • 按y | Y表示是,或按另一个键表示否。 ÿ
  • 输入0 =低,1 =中,2 =强: 两个
  • 新密码: [ENTER STRONG PASSWORD HERE]
  • 重新输入新密码: 在这里重新输入密码
  • 您要继续使用提供的密码吗? (按y | Y表示是,按其他键表示否): ÿ
  • 删除匿名用户? (按y | Y表示是,按其他键表示否): ÿ
  • 是否要允许root用户远程登录? (按y | Y表示是,按其他键表示否): ÿ
  • 删除并访问测试数据库? (按y | Y表示是,按其他键表示否): ÿ
  • 现在重新加载特权表? (按y | Y表示是,按其他键表示否): ÿ

第3步-连接MySQL

安装完成,您的MySQL服务器受到保护。通过控制台连接到MySQL服务器或安装phpMyAdmin并使用图形Web界面。

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 10
Server version: 8.0.17 Source distribution

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>

第4步-创建数据库和用户

我们不建议使用“ root”用户从您的应用程序连接到数据库。因此,建议您为应用程序数据库连接创建另一个用户。以下命令创建一个新的MySQL数据库,然后创建一个新的MySQL用户并向该数据库分配特权。

您可以根据需要更改数据库和用户名。另外,请为用户使用强密码。

mysql> CREATE DATABASE tecadmin;
Query OK, 1 row affected (0.01 sec)

mysql> CREATE USER 'tecadmin'@'localhost' IDENTIFIED BY 'your secure password here';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON tecadmin.* to 'tecadmin'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

接下来,使用新创建的用户连接到MySQL服务器并列出可用的数据库。

mysql -u tecadmin -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 11
Server version: 8.0.17 Source distribution

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 |
| tecadmin           |
+--------------------+
2 rows in set (0.01 sec)

mysql>

结论

您已在CentOS 8系统上成功安装并配置了MySQL 8.0。服务器已准备好用于生产。您可能需要为生产系统配置自动数据库备份脚本。