如何在Ubuntu上安装和配置mysql

时间:2020-02-23 14:38:32  来源:igfitidea点击:

MySQL是基于结构化查询语言(SQL)的最常见的开源关系数据库管理系统(RDBMS)之一,该语言是用于管理在数据库中保存的数据的编程语言。

在Ubuntu上安装MySQL

步骤1)确保系统中的所有包和存储库都是最新的。
我们可以通过运行以下命令来执行此操作: sudo apt update

步骤2)现在,我们将通过APT包管理器安装MySQL。
执行下面的命令。 sudo apt install mysql-server

步骤3)安装成功后,MySQL-Service应自动启动。
我们可以通过执行以下命令确认: sudo systemctl status mysql我们应该获得类似于下面的图像上的输出。

在任何情况下,服务未运行,请执行以下命令: sudo /etc/init.d/mysql start

验证MySQL安装(可选)

我们可以通过运行以下命令来验证安装,该命令将输出系统中安装的MySQL版本和分发。 mysql --version

保护MySQL服务器

既然MySQL Server已成功安装,则需要设置一些参数以确保我们在将来配置的服务器和数据库的安全性。

在其他情况下,在MySQL Server包安装完成后,MySQL-Secure安装实用程序将自动启动。
但是,如果不是情况,请执行以下命令: sudo mysql_secure_installation我们将看到提示询问我们是否验证密码插件。
它通过检查用户密码的强度来增强MySQL Server安全性,允许用户只设置强密码。
按y接受验证或者返回键跳过。

接下来,我们应该看到设置root密码的提示。
输入密码并按Enter键。
注意,出于安全原因,不显示控制台中输入的任何类型。

输入MySQL root密码

接下来,我们应该看到提示询问我们是否删除所有匿名用户,请输入Y。
对于此处的任何其他提示,请输入Y为YES。

以root身份登录并调整用户身份验证

MySQL Server附带了一个客户端实用程序,允许我们从Linux终端访问和交互。

通常,在Ubuntu上进行新安装MySQL而不执行任何配置之后,访问服务器的用户使用身份验证套接字(auth_socket)插件进行身份验证。

auth_socket的使用阻碍了服务器使用密码进行身份验证用户。
它不仅提高了安全问题,还涵盖了用户使用phpmyadmin等外部程序访问数据库。
我们需要从auth_socket更改身份验证方法到使用mysql_native_password。

为此,我们需要打开MySQL控制台。
在Linux终端上运行以下命令。 sudo mysql

现在,我们需要检查不同用户上数据库使用的身份验证方法。
我们可以通过运行以下命令来执行此操作。 SELECT user,authentication_string,plugin,host FROM mysql.user;

从上面的图像,我们可以确认root用户确实是使用auth_socket插件进行身份验证的。
我们需要使用下面的"Alter User User"命令切换到"密码身份验证"。
确保我们使用安全密码(应超过八个字符组合数字,字符串和特殊符号),因为它将替换执行上面的命令'sudo mysql_secure_installation时设置的密码。
运行以下命令。 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

更改root身份验证

注意,上面的图像中的突出显示的文本是我们输入安全密码的位置。
在单个标签之间括起来。
现在,我们需要重新加载授予表并将更改更新到MySQL-Server。
执行以下命令执行此操作。 FLUSH PRIVILEGES;

一旦完成,我们需要确认根使用不再使用auth_socket进行身份验证。
通过再次运行下面的命令来执行此操作。 SELECT user,authentication_string,plugin,host FROM mysql.user;

从上面的图像中,我们看到root身份验证方法已从"auth_socket"到"密码"。

由于我们已更改root身份验证方法,因此我们无法使用我们之前使用的相同命令打开MySQL控制台。
也就是说,'sudo mysql'。
我们需要包含用户名和密码参数,如下所示。 mysql -u root -p'-u'表示用户,它为我们的案例和'-p'代表'password',服务器将提示我们输入一旦输入键。

创建新用户

设置一切都已设置后,我们可以创建一个我们将授予适当权限的新用户。
在我们的情况下,我们将在所有数据库表和更改,删除和添加用户权限的所有数据库表和权限上创建用户的"Tuts_theitroad"并分配权限。
按行执行行下方的命令。

CREATE USER 'tuts_theitroad'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'tuts_theitroad'@'localhost' WITH GRANT OPTION;

第一个命令将创建新用户,第二个命令分配所需的权限。

我们现在可以通过运行以下命令来测试我们的新用户。 mysql -u tuts_theitroad -p

在Ubuntu Server上安装MySQL-Server

在Ubuntu Server上安装MySQL-Server与上述步骤没有太大差异。
但是,由于远程访问服务器,因此我们还需要为我们的服务器启用远程访问权限。

要安装数据库并配置安全选项,请刚刚按终端的行按照以下命令行。

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

安装成功后,我们需要启用远程访问。
逻辑上,我们需要做的就是在Ubuntu Server防火墙上打开一个端口,用于MySQL Server进行通信。
默认情况下,MySQL服务在端口3306上运行。
运行以下命令。

sudo ufw enable
sudo ufw allow mysql

为增强MySQL数据库的可靠性和可访问性,我们可以配置MySQL-Server服务以开始在启动时运行。
为此,请执行以下命令。 sudo systemctl enable mysql

现在我们需要配置服务器的接口。
它将使服务器能够侦听远程可访问的接口。
我们必须编辑"mysqld.cnf"文件。
运行下面的命令。 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

配置Bind-Address

默认情况下,Bind-address将"127.0.0.1"。
为公共网络接口添加绑定地址,另一个用于服务网络接口。
我们可以为所有IP地址配置为"0.0.0.0"的Bind-address。