如何在Ubuntu 18.04上安装MySQL

时间:2020-03-05 15:30:21  来源:igfitidea点击:

MySQL是最流行的开源关系数据库管理系统。

它快速,易于使用,可扩展,并且是流行的“ LAMP”和“ LEMP”堆栈的组成部分。

在本教程中,我们将向我们展示如何在Ubuntu 18.04计算机上安装和保护MySQL。

准备工作

确保我们以具有sudo特权的用户身份登录。

在Ubuntu上安装MySQL

在撰写本文时,可从官方Ubuntu存储库中获得的MySQL的最新版本是MySQL版本5.7.

要在Ubuntu服务器上安装MySQL,请执行以下步骤:

  • 首先,通过键入以下内容来更新apt软件包索引:
sudo apt update
  • 然后使用以下命令安装MySQL软件包:
sudo apt install mysql-server
  • 安装完成后,MySQL服务将自动启动。要检查MySQL服务器是否正在运行,请输入:
sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2016-06-20 11:30:23 PDT; 5min ago
 Main PID: 17382 (mysqld)
    Tasks: 27 (limit: 2321)
   CGroup: /system.slice/mysql.service
           `-17382 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

保护MySQL

MySQL服务器软件包附带一个名为“ mysql_secure_installation”的脚本,该脚本可以执行一些与安全性相关的操作。

通过键入以下命令来运行脚本:

sudo mysql_secure_installation

系统将要求我们配置“ VALIDATE PASSWORD PLUGIN”,该密码用于测试MySQL用户密码的强度并提高安全性。

密码验证策略分为三个级别:低,中和强。
如果我们不想设置验证密码插件,请按“ ENTER”。

在下一个提示符下,将要求我们设置MySQL root用户的密码。
完成该操作后,脚本还将要求我们删除匿名用户,限制root用户对本地计算机的访问并删除测试数据库。
我们应该对所有问题回答“是”(是)。

以root身份登录

要从命令行与MySQL服务器进行交互,我们可以使用MySQL客户端实用程序,该实用程序是作为MySQL服务器软件包的依赖项安装的。

在运行MySQL 5.7(及更高版本)的Ubuntu系统中,默认情况下,root用户通过'auth_socket'插件进行身份验证。

“ auth_socket”插件对通过Unix套接字文件从“ localhost”连接的用户进行身份验证。
这意味着我们无法通过提供密码来以root用户身份进行身份验证。

要以root用户身份登录到MySQL服务器,请输入:

sudo mysql

将为我们提供MySQL Shell,如下所示:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names Jan be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

如果要以root用户身份从诸如phpMyAdmin之类的外部程序登录MySQL服务器,则有两个选择。

第一个是将身份验证方法从'auth_socket'更改为'mysql_native_password'。
我们可以通过运行以下命令来做到这一点:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';FLUSH PRIVILEGES;

推荐的第二个选项是创建一个可以访问所有数据库的新管理用户:

GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';