当前位置: 首页 > news >正文

在Ubuntu 16.04上安装最新版本的MySQL的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

简介

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 的链接。右键单击该链接,然后选择 复制链接地址(这个选项可能在不同的浏览器中有不同的措辞)。

现在我们要下载文件。在您的服务器上,切换到一个您可以写入的目录:

cd /tmp

使用 curl 下载文件,记得将刚刚复制的地址粘贴到下面高亮部分的位置:

curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb

我们需要向 curl 传递两个命令行标志。-O 指示 curl 输出到文件而不是标准输出。L 标志使 curl 跟随 HTTP 重定向,在这种情况下是必要的,因为我们复制的地址实际上会在文件下载之前将我们重定向到另一个位置。

文件现在应该已经下载到我们当前的目录中。列出文件以确保:

ls

您应该看到文件名列出:


mysql-apt-config_0.8.3-1_all.deb
. . .

现在我们准备安装:

sudo dpkg -i mysql-apt-config*

dpkg 用于安装、删除和检查 .deb 软件包。-i 标志表示我们想要从指定文件安装。

在安装过程中,您将看到一个配置屏幕,您可以在其中指定您喜欢的 MySQL 版本,以及安装其他与 MySQL 相关工具的选项。默认情况下,将添加最新稳定版本的 MySQL 仓库信息,而不添加其他内容。这正是我们想要的,所以使用下箭头导航到 Ok 菜单选项,然后按 ENTER

软件包现在将完成添加仓库的过程。刷新您的 apt 软件包缓存,以使新的软件包可用:

sudo apt-get update

让我们在完成后清理一下并删除我们下载的文件:

rm mysql-apt-config*

现在我们已经添加了 MySQL 仓库,可以安装实际的 MySQL 服务器软件了。如果您需要更新这些仓库的配置,只需运行 sudo dpkg-reconfigure mysql-apt-config,选择新选项,然后运行 sudo apt-get update 刷新您的软件包缓存。

步骤 2 — 安装 MySQL

在添加了仓库并且我们的软件包缓存已经更新的情况下,我们现在可以使用 apt-get 安装最新的 MySQL 服务器软件包:

sudo apt-get install mysql-server

apt-get 将查看所有可用的 mysql-server 软件包,并确定 MySQL 提供的软件包是最新且最佳的候选。然后它将计算软件包依赖关系,并要求您批准安装。输入 y 然后 ENTER。软件将安装。在安装过程的配置阶段,您将被要求设置 root 密码。请务必选择一个安全的密码,输入两次,然后过程将完成。

MySQL 现在应该已经安装并运行。让我们使用 systemctl 进行检查:

systemctl status mysql

● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2017-04-05 19:28:37 UTC; 3min 42s agoMain 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 进行一些安全相关的更新。让我们现在运行它:

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 的命令行管理客户端。我们将使用它来连接到服务器并输出一些版本和状态信息:

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 secThreads: 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 数据目录移动到新位置》中有介绍。

相关文章:

  • 基于单片机8路数字电压表电压采集系统
  • 服务器开通个人账户
  • Jenkins: fontconfig head is null, check your fonts or fonts configuration;
  • PostgreSQL的表碎片
  • 从0新建一个微信小程序实现一个简单跳转
  • label标签,for属性与input的id属性相匹配
  • UE(网络)
  • excel导出图片---HSSFWorkbook--SXSSFWorkbook
  • <Rust>iced库(0.13.1)学习之部件(三十):button部件的使用
  • 为什么vue加载select大量数据会使页面造成卡顿
  • upsample nearest 临近上采样实现方式
  • taobao.item_get_appAPI接口原app数据测试指南
  • unity安装报错问题记录
  • 确保从IP池提取的IP是可用的对于数据抓取或其他网络活动至关重要。以下是一些确保IP可用性的有效方法:
  • 点评项目-3-登录成功后加载登录页面
  • SegmentFault for Android 3.0 发布
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • java中具有继承关系的类及其对象初始化顺序
  • JS+CSS实现数字滚动
  • js算法-归并排序(merge_sort)
  • Markdown 语法简单说明
  • MySQL几个简单SQL的优化
  • React中的“虫洞”——Context
  • Redis学习笔记 - pipline(流水线、管道)
  • scala基础语法(二)
  • ucore操作系统实验笔记 - 重新理解中断
  • Vultr 教程目录
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Zepto.js源码学习之二
  • 简单易用的leetcode开发测试工具(npm)
  • 前端工程化(Gulp、Webpack)-webpack
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用parted解决大于2T的磁盘分区
  • 为视图添加丝滑的水波纹
  • 用jQuery怎么做到前后端分离
  • 怎样选择前端框架
  • 自定义函数
  • 走向全栈之MongoDB的使用
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​人工智能书单(数学基础篇)
  • #### golang中【堆】的使用及底层 ####
  • #、%和$符号在OGNL表达式中经常出现
  • #FPGA(基础知识)
  • (C++20) consteval立即函数
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)elasticsearch 源码之启动流程分析
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)VC++中ondraw在什么时候调用的
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容