如何在CentOS 8上安装MySQL 8数据库服务器

如何在CentOS 8上安装MySQL 8数据库服务器

MySQL是免费的开源软件,并且是全球最受欢迎的数据库系统之一。配备Oracle Cloud的关系数据库管理平台。使用结构化查询语言来添加,访问和管理数据库内容。以久经考验的可靠性,快速处理,易用性和灵活性而著称。 MySQL 8增加了几个新功能,包括JSON支持,事务数据字典,持久运行时配置,文档存储,优化器提示,SQL角色,CTE和窗口函数以及隐藏索引。

注意事项:在安装MySQL 8之前, 正式文件 MySQL 8具有一些新功能和更改,因为某些应用程序与此版本不兼容。

本教程显示如何在CentOS 8服务器上安装MySQL 8数据库。

前提条件

  • 运行CentOS的服务器8。
  • 已经在服务器上设置了root密码。

从MySQL存储库安装MySQL 8.0

默认情况下,CentOS 8默认存储库中不提供MySQL 8.0。因此,您需要在系统上安装MySQL 8.0社区存储库。您可以使用以下命令进行安装:

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

您将看到以下输出:

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

接下来,使用以下命令检查是否启用了MySQL 8.0存储库:

dnf repolist all | grep mysql | grep enabled

您将看到以下输出:

CentOS-8 - AppStream                            3.1 MB/s | 6.5 MB     00:02    
CentOS-8 - Base                                 3.0 MB/s | 5.0 MB     00:01    
CentOS-8 - Extras                               5.3 kB/s | 2.1 kB     00:00    
MySQL 8.0 Community Server                       24 MB/s | 543 kB     00:00    
MySQL Connectors Community                      1.9 MB/s |  19 kB     00:00    
MySQL Tools Community                           677 kB/s |  62 kB     00:00    
mysql-connectors-community         MySQL Connectors Community     enabled:    42
mysql-tools-community              MySQL Tools Community          enabled:    19
mysql80-community                  MySQL 8.0 Community Server     enabled:    31

接下来,暂时禁用AppStream存储库,并使用以下命令从MySQL社区存储库安装最新版本的MySQL 8.0:

dnf --disablerepo=AppStream install mysql-community-server -y

成功安装后,可以使用以下命令检查安装了哪个版本的MySQL:

mysql -Version

您将看到以下输出:

mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

接下来,启动MySQL服务,以便可以在系统重启后使用以下命令启动它:

systemctl start mysqld systemctl enable mysqld

您还可以使用以下命令检查MySQL的状态:

systemctl status mysqld

您将看到以下输出:

? mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-05 09:37:46 EST; 12s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3244 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 3329 (mysqld)
   Status: "Server is operational"
    Tasks: 39 (limit: 12537)
   Memory: 587.7M
   CGroup: /system.slice/mysqld.service
           ??3329 /usr/sbin/mysqld

Mar 05 09:37:01 centos8 systemd[1]: Starting MySQL Server...
Mar 05 09:37:46 centos8 systemd[1]: Started MySQL Server.

接下来,我们建议您运行mysql_secure_installation脚本以启用其他安全功能,例如设置新的MySQL根密码,删除匿名用户以及禁用远程登录。

首先,使用以下命令找到MySQL默认的root密码:

cat /var/log/mysqld.log | grep -i 'temporary password'

输出:

2020-03-05T14:37:40.273796Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: GN2uNx-vPqwS

记下上述密码,并使用mysql_secure_installation脚本进行更改。

mysql_secure_installation

回答所有问题,如下所示。

Securing the MySQL server deployment.

Enter password for user root:   Provide your temporary MySQL root password

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

New password:   Provide new root password

Re-enter new password:   Re-enter new root 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 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N  Type N and Enter to continue

 ... skipping.
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!

从AppStream存储库安装MySQL 8.0

您也可以从CentOS 8的默认AppStream存储库安装MySQL 8.0。您可以使用以下命令进行安装。

dnf install @mysql -y

安装完成后,使用以下命令检查MySQL版本:

mysql -Version

您将看到以下输出:

mysql  Ver 8.0.17 for Linux on x86_64 (Source distribution)

接下来,启动MySQL服务,以便可以在系统重启后使用以下命令启动它:

systemctl start mysqld systemctl enable mysqld

默认情况下,MySQL根密码未设置为CentoS 8。因此,必须使用mysql_secure_installation脚本进行设置。

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: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

New password: 

Re-enter new password: 

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! 

结论

在上面的指南中,您学习了如何从MySQL社区存储库和CentOS 8 AppStream存储库安装MySQL 8。现在,您可以开始创建新的数据库和数据库用户。

Sidebar