前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
MySQL 是一个知名的开源数据库管理系统,用于存储和检索各种热门应用程序的数据。MySQL 是 LAMP 栈中的 M,这是一套常用的开源软件组合,还包括 Linux、Apache Web 服务器和 PHP 编程语言。
为了使用新发布的功能,有时需要安装比 Linux 发行版提供的更更新的 MySQL 版本。方便的是,MySQL 开发人员维护了他们自己的软件仓库,我们可以使用它来轻松安装最新版本并保持更新。
要安装最新版本的 MySQL,我们将添加这个仓库,安装 MySQL 软件本身,保护安装,最后我们将测试 MySQL 是否正在运行并响应命令。
先决条件
在开始本教程之前,您需要:
- 一个 Ubuntu 16.04 服务器,具有非根、启用 sudo 的用户,如在本 Ubuntu 16.04 服务器设置教程中所述。
步骤 1 --- 添加 MySQL 软件仓库
MySQL 开发人员提供了一个 .deb
包,用于配置和安装官方 MySQL 软件仓库。一旦设置了仓库,我们就可以使用 Ubuntu 的标准 apt-get
命令来安装软件。我们将使用 curl
下载这个 .deb
文件,然后用 dpkg
命令安装它。
首先,在您的网络浏览器中加载 MySQL 下载页面。找到右下角的 Download 按钮,然后点击到下一页。该页面将提示您登录或注册 Oracle 网站帐户。我们可以跳过这一步,而是寻找一个写着 No thanks, just start my download 的链接。右键单击该链接,然后选择 复制链接地址(这个选项可能在不同的浏览器中有不同的措辞)。
现在我们要下载文件。在您的服务器上,切换到一个您可以写入的目录:
command
cd /tmp
使用 curl
下载文件,记得将刚刚复制的地址粘贴到下面高亮部分的位置:
command
curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb
我们需要向 curl
传递两个命令行标志。-O
指示 curl
输出到文件而不是标准输出。L
标志使 curl
跟随 HTTP 重定向,在这种情况下是必要的,因为我们复制的地址实际上会在文件下载之前将我们重定向到另一个位置。
文件现在应该已经下载到我们当前的目录中。列出文件以确保:
command
ls
您应该看到文件名列出:
mysql-apt-config_0.8.3-1_all.deb
. . .
现在我们准备安装:
command
sudo dpkg -i mysql-apt-config*
dpkg
用于安装、删除和检查 .deb
软件包。-i
标志表示我们想要从指定文件安装。
在安装过程中,您将看到一个配置屏幕,您可以在其中指定您喜欢的 MySQL 版本,以及安装其他与 MySQL 相关工具的选项。默认情况下,将添加最新稳定版本的 MySQL 仓库信息,而不添加其他内容。这正是我们想要的,所以使用下箭头导航到 Ok
菜单选项,然后按 ENTER
。
软件包现在将完成添加仓库的过程。刷新您的 apt
软件包缓存,以使新的软件包可用:
command
sudo apt-get update
让我们在完成后清理一下并删除我们下载的文件:
command
rm mysql-apt-config*
现在我们已经添加了 MySQL 仓库,可以安装实际的 MySQL 服务器软件了。如果您需要更新这些仓库的配置,只需运行 sudo dpkg-reconfigure mysql-apt-config
,选择新选项,然后运行 sudo apt-get update
刷新您的软件包缓存。
步骤 2 --- 安装 MySQL
在添加了仓库并且我们的软件包缓存已经更新的情况下,我们现在可以使用 apt-get
安装最新的 MySQL 服务器软件包:
command
sudo apt-get install mysql-server
apt-get
将查看所有可用的 mysql-server
软件包,并确定 MySQL 提供的软件包是最新且最佳的候选。然后它将计算软件包依赖关系,并要求您批准安装。输入 y
然后 ENTER
。软件将安装。在安装过程的配置阶段,您将被要求设置 root 密码。请务必选择一个安全的密码,输入两次,然后过程将完成。
MySQL 现在应该已经安装并运行。让我们使用 systemctl
进行检查:
command
systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-04-05 19:28:37 UTC; 3min 42s ago
Main PID: 8760 (mysqld)
CGroup: /system.slice/mysql.service
└─8760 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Active: active (running)
行表示 MySQL 已安装并正在运行。现在我们将使安装更加安全。
第三步 ------ 安全配置 MySQL
MySQL 自带了一个命令,我们可以用它来对新安装的 MySQL 进行一些安全相关的更新。让我们现在运行它:
command
mysql_secure_installation
这将要求您输入在安装过程中设置的 MySQL root 密码。输入密码并按 ENTER
键。现在我们将回答一系列的是或否提示。让我们逐个进行:
首先,我们被询问关于验证密码插件 ,这是一个可以自动强制执行某些密码强度规则的 MySQL 用户的插件。是否启用这个功能取决于您个人的安全需求。输入 y
并按 ENTER
启用它,或者直接按 ENTER
跳过。如果启用了,您还将被提示选择一个从 0 到 2 的级别,用于设置密码验证的严格程度。选择一个数字并按 ENTER
继续。
接下来,您将被问及是否要更改root 密码。由于我们刚刚在安装 MySQL 时创建了密码,我们可以安全地跳过这一步。按 ENTER
继续,不更新密码。
其余的提示都可以回答为是 。您将被问及是否删除匿名 MySQL用户,禁止远程root 登录,删除test 数据库,并重新加载权限表以确保之前的更改生效。这些都是一个好主意。对于每个提示,输入 y
并按 ENTER
。
在回答完所有提示后,脚本将退出。现在我们的 MySQL 安装已经相当安全。让我们通过运行一个连接到服务器并返回一些信息的客户端来再次测试它。
第四步 ------ 测试 MySQL
mysqladmin
是 MySQL 的命令行管理客户端。我们将使用它来连接到服务器并输出一些版本和状态信息:
command
mysqladmin -u root -p version
-u root
部分告诉 mysqladmin
以 MySQL root 用户身份登录,-p
指示客户端要求输入密码,version
是我们要运行的实际命令。
输出将告诉我们正在运行的 MySQL 服务器版本、其运行时间以及一些其他状态信息:
mysqladmin Ver 8.42 Distrib 5.7.17, for Linux on x86_64
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 may be trademarks of their respective
owners.
Server version 5.7.17
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 58 min 28 sec
Threads: 1 Questions: 10 Slow queries: 0 Opens: 113 Flush tables: 1 Open tables: 106 Queries per second avg: 0.002
如果您收到类似的输出,恭喜!您已成功安装了最新的 MySQL 服务器并对其进行了安全配置。
结论
您现在已经完成了最新版本 MySQL 的基本安装,这对许多常见的应用程序都适用。如果您有更高级的需求,您可能会继续进行其他配置任务:
- 如果您想要一个用于管理 MySQL 服务器的图形界面,phpMyAdmin 是一个常用的基于 Web 的解决方案。我们的教程《如何安装和保护 phpMyAdmin》可以帮助您入门。
- 目前,您的数据库只能被运行在同一服务器上的应用程序访问。有时您可能希望有单独的数据库和应用程序服务器,出于性能和存储的考虑。查看《如何为 MySQL 配置 SSL/TLS》以了解如何设置 MySQL 以便从其他服务器安全访问。
- 另一个常见的配置是更改 MySQL 存储数据的目录。如果您希望数据存储在与默认目录不同的存储设备上,您需要进行这项操作。这在《如何将 MySQL 数据目录移动到新位置》中有介绍。