如何在Ubuntu 18.04上安装MySQL
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';