MySQL代表My(co-founder Michael Widenius的女儿的名字)的结构化查询语言是一种开放源代码关系数据库管理系统。该RDBMS由Oracle支持,可在几乎所有平台上运行,例如Linux,UNIX和MS Windows。 MYSQL通常是在线发布和基于Web的应用程序的首选。 Facebook,YouTube和Twitter都使用MySQL作为其RDBMS。 MySQL是非常流行的LAMP堆栈的一部分:Linux,Apache,MySQL和Python /PHP /Perl。
在本文中,我们将描述如何执行以下操作的step-by-step过程:
- 安装apt软件包存储库中可用的最新版本的MySQL
- 运行MySQL安全脚本
- 配置根用户访问MySQL Shell
- 最后,测试MySQL是否已启动并正在运行
我们已经在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。
MySQL安装和安全配置
在本节中,我们将描述如何通过Ubuntu命令行安装MySQL并在其上配置安全性。
您可以通过应用程序启动器搜索栏或Ctrl + Alt + T快捷键打开Ubuntu命令行终端。
步骤1:更新存储库索引
为了从Internet存储库安装软件的最新可用版本,您的本地存储库索引需要与它们保持一致。以sudo身份运行以下命令,以更新您的本地存储库索引:
$ sudo apt-get update
步骤2:使用apt安装MySQL Server
请以sudo身份运行以下命令,以便从APT存储库安装MySQL。
$ sudo apt-get install mysql-server
请注意,只有授权用户才能在Ubuntu上添加,删除和配置软件。
系统可能会询问您sudo的密码,并且还会为您提供一个Y /n选项以继续安装。输入Y,然后按Enter;然后将MySQL安装在您的系统上。但是,此过程可能需要一些时间,具体取决于您的Internet速度。
步骤3:验证安装(可选)
您可以通过在终端中运行以下命令来验证您的MySQL安装并检查版本号:
$ mysql --version
步骤4:通过运行随附的安全脚本进行安全配置
每当您安装MySQL的新副本时,都应更改一些默认设置,以增强MySQL安装的安全性。这包括删除测试用户,测试数据库以及root用户进行远程登录的权限。
以sudo身份运行以下命令以运行安全脚本:
$ sudo mysql_secure_installation
运行此命令时,将首先要求您设置Validate Password插件。这使您可以根据要选择的密码强度为root设置安全密码。输入Y为了运行验证密码插件,您将得到以下提示:
输入您选择的密码强度数字,然后按Enter。然后,系统将询问您新的root密码。在以下提示中输入密码,然后输入re-enter。
然后,系统将显示您提供的密码强度,并询问您是否要继续输入密码。
为是输入Y,然后按Enter。
系统现在将一个接一个地向您提出一系列问题,您可以根据对这些问题的回答来设置系统的安全性。
系列问题:
第一个问题将询问您是否要删除匿名测试用户。
按y,然后按Enter。
第二个问题将询问您是否要禁止从远程系统进行root登录。通常,这是您的选择,因为对于安全系统,仅应允许root从本地主机连接。
因此,我们建议输入y。
第三个问题将询问您是否要从系统中删除名为“test”的默认MySQL数据库,并删除对其的访问。
输入y删除此测试数据库。
为了使您的所有above-configured更改生效,系统需要重新加载特权表。输入y,您的所有安全更改将被提交。
配置Root以使用MySQL Shell
运行安全脚本时,您提供了root用户密码。但是,不允许该用户使用相同的密码连接到MySQL Shell。您可以通过将其身份验证方法从默认的“auth_socket”更改为“mysql_native_password”来将配置根更改为使用MySQL Shell。
这是您可以执行的操作:
步骤1:启动MySQL Shell
首先,通过以sudo运行以下命令来启动MySQL Shell:
$ sudo mysql
这将启动MySQL Shell,以便您可以在MySQL提示符下工作。
步骤2:检查MySQL用户的身份验证方法
在MySQL提示符下,输入以下命令,该命令可让您检查所有MySQL帐户当前正在使用的身份验证方法/插件:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
在上面的输出中,您可以看到默认情况下root用户正在使用auth-socket插件进行身份验证。
步骤3:更改root用户的身份验证方法
我们的目的是让root用户在MySQL上使用密码进行身份验证。为此,请运行以下命令,以使根由mysql_native_password标识。请记住,该密码必须非常安全。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
从现在开始,您的根目录将不再具有在运行包含的安全脚本时指定的密码,而是您在above-mentioned命令中指定的强密码。
步骤4:重新载入授权表
现在是时候告诉服务器使用新的特权设置了。在MySQL提示中运行以下命令以重新加载授权表并注册您的更改:
mysql> FLUSH PRIVILEGES;
步骤5:重新检查MySQL用户的身份验证方法
现在,当您通过以下命令重新检查MySQL用户帐户的身份验证方法时,您将看到您的root用户现在正在使用mysql_native_password插件进行身份验证:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
现在您的root用户已设置为通过安全密码连接到MySQL Shell,您可以使用exit命令如下退出shell:
mysql> exit
测试MySQL是否已启动并正在运行
为了检查MySQL是否在您的系统上运行,可以使用以下方法之一:
方法1:检查mysql.service的状态
在系统上安装MySQL之后,mysql.service最有可能自动运行。以下命令的输出应验证服务的活动状态:
$ systemctl status mysql.service
如果由于某种原因该服务未运行,则可以将以下命令用作sudo来启动该服务:
$ sudo systemctl start mysql
以下命令将在需要时帮助您停止服务:
$ sudo systemctl stop mysql
方法2:以root用户身份连接到MySQL Admin并运行任何管理命令
MySQL Admin是一个客户端,可让您在MySQL上执行管理操作。让我们通过它运行一个管理命令作为示例,以检查系统是否正常运行,并且我们的根配置为使用它。
$ sudo mysqladmin -p -u root version
该命令旨在以root用户身份连接到MySQL,提示输入root密码,然后返回MySQL admin的版本号。
如果该命令完成了所需的操作,并且产生的输出与上述类似,则可以确保MySQL已启动并正在运行。
在Ubuntu上安装和设置MySQL的过程对于某些人来说似乎很麻烦,尤其是使用命令行。但是,如果您仔细地一步一步使用上述步骤,那么在Ubuntu上运行可靠,安全和稳定的MySQL安装将没有问题。