MySQL是最流行的开源数据库管理服务器。MySQL可用于不同的操作系统,如Linux、Solaris、macOS和Windows。Ubuntu是最终用户和企业服务器使用的流行Linux发行版。在本教程中,我们将学习如何将MySQL安装到ubuntu20.04中。此外,本教程还可以用于其他Ubuntu版本,如Ubuntu18.04等。
从官方Ubuntu存储库安装MySQL数据库服务器
MySQL数据库服务器可以以不同的方式安装,但是从官方的Ubuntu存储库安装是最流行和可靠的方式。Ubuntu项目为MySQL包提供了社区支持和繁重的测试阶段。
与每个包安装一样,我们将更新存储库和包信息,以便获得有关包的最新信息。以下程序包将请求根权限的当前用户密码。
$ sudo apt update
现在我们已经更新了存储库信息,在安装MySQL数据库服务器之前,我们将打印MySQL包信息。MySQL服务器包名为 mysql-server
关于这个包的信息可以显示如下。
$ apt show mysql-server
![图片[1]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-28.png)
从这些信息中我们可以看到,提供的mysql服务器版本是8.0,这个包主要是为Ubuntu 20.04创建的。
现在我们可以用包名安装MySQL数据库服务器了 mysql-server
就像下面一样。包安装需要root权限,所以我们也使用sudo命令。
$ sudo apt install mysql-server
在Mysql数据库服务器安装完成后,我们可以使用下面的systemctl命令检查Mysql数据库服务状态。稍后我们将详细查看MySQL服务的启动、停止、重新启动和状态。
$ sudo apt install mysql-server
![图片[2]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-29.png)
从官方MySQL Deb包安装MySQL数据库服务器
启动、停止并重新启动MySQL服务
安装MySQL数据库服务器后,服务将自动启动。MySQL数据库服务的默认状态是on,即使系统重新启动,服务也会自动启动。我们可以检查MySQL服务的当前状态,如下所示。
$ systemctl status mysql
![图片[3]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-30.png)
我们可以看到绿色文本,这意味着该服务是活动的,目前正在运行。
相关文章: 转到Vi/Vim中指定的行号
我们可以用 systemctl stop
命令。但在系统重启或重新启动后,默认情况下MySQL服务将自动启动。
$ sudo systemctl stop mysql
我们可以用下面的systemctl启动MySQL服务。
$ sudo systemctl start mysql
或者我们可以在系统启动或重启时禁用MySQL服务自动启动,如下所示。
$ sudo systemctl disable mysql
如果MySQL服务在系统启动或重启时被禁用自动启动,我们可以如下所示启用MySQL服务自动启动。
$ sudo systemctl enable mysql
打印MySQL服务/服务器版本和正常运行时间
可以使用 mysqladmin
命令。这也将提供正常运行时间信息。
$ sudo mysqladmin -p -u root version
![图片[4]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-39.png)
从输出中我们可以看到MySQL版本是8.0,正常运行时间是56分22秒。
或者 mysql
命令可以与 -V
打印MySQL服务器版本的选项。
$ mysql -V
保护和强化MySQL服务器安装
数据库是IT系统中最重要的组成部分之一。大多数重要或关键的数据都存储在数据库中。作为一种流行的数据库服务器,MySQL服务器应该被加固或保护以防止数据泄露。MySQL安装提供 mysql_secure_installation
脚本,它将进行一些检查和配置,使MySQL数据库服务器。这个脚本应该以root用户身份运行,您可以在其中使用sudo命令。
$ sudo mysql_secure_installation
在开始强化过程后,第一个问题是验证密码并检查密码的强度。
相关文章: 如何在HTTPS中使用Curl命令?
![图片[5]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-31.png)
第二步是设置密码的安全级别,这主要与密码的复杂性有关。有3种不同的密码安全级别。
LOW
级别策略要求密码至少包含8个字符。
MEDIUM
级别策略至少需要8个字符,这些字符应包含数字、大小写混合和特殊字符。
HIGH
级别策略至少需要8个字符,其中应包含数字、大小写混合、特殊字符和字典检查。
![图片[6]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-32.png)
下一步是根据新的密码策略设置根用户密码。默认情况下,根密码为空,应设置新密码。
![图片[7]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-33.png)
默认情况下,MySQL服务器包含一个匿名用户,这可能会造成安全问题。在这一步中,我们将从MySQL服务器中删除匿名用户。
![图片[8]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-34.png)
MySQL root用户可以从localhost和网络连接,但是为root用户提供网络访问是一个安全问题。最佳实践是从网络中删除根用户访问权限。您将继续从本地系统使用root用户访问MySQL服务器。
![图片[9]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-35.png)
MySQL服务器附带了一个包含默认表和值的测试数据库。这对于测试环境很有用,或者进行一些基本测试,但是会给生产环境带来安全问题。因此,我们将删除测试数据库和访问权限。
![图片[10]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-36.png)
连接并访问MySQL命令行交互式Shell
MySQL通过命令行或交互式shell提供对数据库服务器的访问。这对于测试或更改某些配置非常有用,例如更改密码、添加表、创建数据库、添加行或记录等。可以从本地系统访问MySQL命令行shell,如下所示。即使是MySQL交互式shell也可以在加固根用户无法远程访问后从远程系统访问。
$ mysql -u root -p
![图片[11]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-37.png)
新建MySQL用户
默认情况下,MySQL服务器附带根用户,但我们可以稍后添加新用户并配置对不同数据库的访问。这个 Create User
SQL命令可用于通过指定用户的密码来创建用户。在下面的示例中,我们将创建一个名为ahmet的用户,它可以从localhost访问MySQL服务器。这意味着ahmet无法通过网络远程访问MySQL服务器。ahmet的密码如下所示 M3S3cr3tPass.
CREATE USER 'ahmet'@'localhost' IDENTIFIED BY 'M3S3cr3tPass.';
创建用户后,通常会配置特定数据库的访问权限。下面我们将为ahmet配置对所有数据库的访问。
GRANT ALL PRIVILEGES ON *.* TO 'ahmet'@'localhost' WITH GRANT OPTION;
或者,我们可以像下面这样配置对特定数据库的访问。在下面的命令中,我们将允许用户ahmet访问名为 linuxtect
.
GRANT ALL PRIVILEGES ON linuxtect.* TO 'ahmet'@'localhost' WITH GRANT OPTION;
作为刷新或使更改可用的最后一步,可以如下所示使用right nuw flush命令。
Flush;
在onder中关闭MySQL命令行交互式shell exit
命令的用法如下。
exit;
![图片[12]-如何在Ubuntu 20.04上安装MySQL?-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/09/linuxtect_image-38.png)
卸载MySQL服务器
MySQL服务器可以通过如下apt或apt-get命令轻松地删除或卸载。为了卸载MySQL服务器,需要root权限,可以使用sudo命令来提供root权限。
$ sudo apt remove mysql-server
或者用apt-get命令。
$ sudo apt-get remove mysql-server