如何在 CentOS 7 上安装 MySQL

2023-11-17

介绍

MySQL是一个开源数据库管理系统,通常作为流行的一部分安装LEMP(Linux、Nginx、MySQL/MariaDB、PHP/Python/Perl)堆栈。它使用关系数据库和 SQL(结构化查询语言)来管理其数据。

CentOS 7 更喜欢 MariaDB,它是 MySQL 的一个分支,由原始 MySQL 开发人员管理,旨在替代 MySQL。如果你跑yum install mysql在 CentOS 7 上,安装的是 MariaDB 而不是 MySQL。如果您想了解 MySQL 与 MariaDB,MariaDB 通常会代替 MySQL 无缝运行,因此除非您有 MySQL 的特定用例,否则请参阅如何在 Centos 7 上安装 MariaDB guide.

本教程将解释如何在 CentOS 7 服务器上安装 MySQL 版本 8。

先决条件

要学习本教程,您将需要:

  • 具有非 root 用户的 CentOS 7sudo特权。您可以在中了解有关如何设置具有这些权限的用户的更多信息CentOS 7 的初始服务器设置 guide.

第 1 步 — 安装 MySQL

正如简介中提到的,安装 MySQL 的 Yum 命令实际上安装了 MariaDB。要安装 MySQL,我们需要访问MySQL 社区 Yum 存储库它提供了 MySQL 的软件包。

在网络浏览器中,访问:

https://dev.mysql.com/downloads/repo/yum/

请注意,突出的下载链接不会直接指向这些文件。相反,它们会引导您进入后续页面,邀请您登录或注册帐户。如果您不想创建帐户,可以找到文本“不,谢谢,只需开始我的下载”,然后右键单击并复制链接位置,或者您可以在以下命令中编辑版本号。

找到所需的版本,并根据需要在以下链接中更新:

Screencapture highlighting current yum repo name

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

保存 rpm 文件后,我们将通过运行来验证下载的完整性md5sum并与网站上列出的相应MD5值进行比较:

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

将此输出与站点上相应的 MD5 值进行比较:

Screencapture highlighting md5dsum

现在我们已经验证文件没有损坏或更改,我们将安装该软件包:

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

这添加了两个新的 MySQL yum 存储库,我们现在可以使用它们来安装 MySQL 服务器:

  1. sudo yum installmysql 服务器

Press y以确认您要继续。由于我们刚刚添加了该软件包,因此系统还会提示我们接受其 GPG 密钥。按y下载并完成安装。

第 2 步 — 启动 MySQL

我们将使用以下命令启动守护进程:

  1. sudosystemctl 启动 mysqld

systemctl不显示所有服务管理命令的结果,因此为了确保我们成功,我们将使用以下命令:

  1. sudosystemctl 状态 mysqld

如果 MySQL 已成功启动,输出应包含Active: active (running)最后一行应该类似于:

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]:启动MySQL服务器。

Note:MySQL 在安装时会自动启动。您可以使用以下命令更改默认行为sudo systemctl disable mysqld

在安装过程中,会为MySQL root用户生成一个临时密码。找到它在mysqld.log用这个命令:

  1. sudo grep '临时密码'/var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

记下密码,下一步将需要该密码来确保安装安全,并且您将被迫在何处更改密码。默认密码策略要求 12 个字符,至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符。

第 3 步 — 配置 MySQL

MySQL 包含一个安全脚本,用于更改一些不太安全的默认选项,例如远程 root 登录和示例用户。

使用此命令运行安全脚本。

  1. sudomysql_安全_安装

这将提示您输入默认的 root 密码。一旦您输入它,您将被要求更改它。

Output
The existing password for the user account root has expired. Please set a new password. New password:

输入新的 12 个字符的密码,其中至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符。出现提示时重新输入。

您将收到有关新密码强度的反馈,然后系统会立即提示您再次更改密码。既然你刚刚这么做了,你就可以自信地说No:

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

在我们拒绝再次更改密码的提示后,我们将按Y进而ENTER解决所有后续问题,以便删除匿名用户、禁止远程 root 登录、删除测试数据库并访问它,并重新加载权限表。

现在我们已经确保了安装的安全,让我们测试一下。

第 4 步 — 测试 MySQL

我们可以通过连接来验证我们的安装并获取有关它的信息mysqladmin工具,一个允许您运行管理命令的客户端。使用以下命令连接到 MySQL:root (-u root),提示输入密码(-p),并返回版本。

  1. mysql管理员-u root -p版本

您应该看到与此类似的输出:

Output
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

这表明您的安装已经成功。

结论

在本教程中,我们在 CentOS 7 服务器上安装并保护 MySQL。要了解有关使用 MySQL 的更多信息,请参阅本指南了解有关 MySQL 命令的更多信息可以帮助。您也可以考虑实施一些额外的安全措施.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装 MySQL 的相关文章

  • HTAccess - 令人困惑的干净网址

    如果我想简单地重定向 clients page to clients php view page我会使用像这样简单的东西 它效果很好 Options FollowSymlinks RewriteEngine on RewriteRule c
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • 如何用 UNION 运算符替换 OR 运算符?

    这是我的查询 SELECT h id h subject h body matnF h amount h keywords tags h closed h author id author h AcceptedAnswer h type h
  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • MySQL用户创建的临时表已满

    我使用内存引擎创建了一个临时表 如下所示 CREATE TEMPORARY TABLE IF NOT EXISTS some text id INT DEFAULT 0 string varchar 400 DEFAULT engine m
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • mysql语句中的*星号是什么意思?

    Ex mysql query SELECT FROM members WHERE id id 这意味着选择表中的所有列
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • MySQL 全文搜索不适用于某些单词,例如“house”

    我已经在 3 个字段中的一小部分记录上设置了全文索引 也尝试了 3 个字段的组合 并得到了相同的结果 有些单词返回结果很好 但某些单词如 house 和 澳大利亚 不这样做 有趣的是 澳大利亚 和 家乡 这样做 这似乎是奇怪的行为 如果我添
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • 显示表 FULLTEXT 索引列

    我希望运行一个查询 该查询将返回表中全文索引的列列表 该表采用 MyISAM 格式 我将使用 php 来构建查询 理想情况下 我会运行查询 它会返回信息 以便我可以构造一个以逗号分隔的列字符串 例如 名 姓 电子邮箱 这在 MySQL 中可
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样

随机推荐

  • 如何在 Debian 9 上添加和删除用户

    Debian 以及所有其他 Linux 发行版都是一个多用户操作系统 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 了解如何添加和删除用户是 Linux 用户应该了解的基本技能之一 本教程介绍如何在 Debian
  • 如何在 Debian 上创建 Sudo 用户

    The 须藤命令 Super user do 的缩写 是一个程序 旨在允许用户以另一个用户 默认为 root 用户 的安全权限执行命令 在本指南中 我们将向您展示如何在 Debian 系统上创建新用户并为其授予 sudo 访问权限 您可以使
  • 如何设置 Git 服务器

    当谈到 Git 托管时 您有多种选择 GitHub Gitlab 和 Bitbucket 是流行的解决方案 但运行自己的 Git 服务器是值得考虑的替代方案 设置 Git 服务器允许您创建私人存储库 而不受提供商免费计划的限制 在本指南中
  • 如何在 Debian 9 上安装 MySQL

    随着 Debian 9 Stretch MySQL 的发布 Debian 存储库中不再提供世界上最流行的开源关系数据库管理系统 MariaDB 已成为默认数据库系统 MariaDB 是 MySQL 的向后兼容 二进制直接替代品 在本教程中
  • 如何在 CentOS 8 上安装 TensorFlow

    TensorFlow是谷歌打造的一个开源机器学习平台 它可以在不同设备上的 CPU 或 GPU 上运行 并被许多组织使用 包括 Twitter PayPal 英特尔 联想和空客 TensorFlow 可以安装在系统范围内 Python 虚拟
  • 在 CentOS 7 上安装 PHP 7

    CentOS 7 附带 PHP 版本 5 4 该版本已正式 EOL 相当长一段时间 不再受支持 通过使用 PHP 7 您的应用程序将加载更快并消耗更少的系统资源 在本教程中 我们将解释如何安装或升级到 PHP 7 0 CentOS 7 系统
  • 如何在 Linux 中移动文件和目录(mv 命令)

    移动文件和目录是您经常需要在 Linux 系统上执行的最基本任务之一 在本教程中 我们将解释如何使用mv移动文件和目录的命令 如何使用mv命令 The mv命令 move 的缩写 用于将文件和目录从一个位置重命名和移动到另一个位置 语法为m
  • 如何在 CentOS 8 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 CentOS 8 上安装和配置 Xrdp
  • 如何在 Ubuntu 18.04 上安装 Flask

    Flask 是一个免费 开源的 Python 微型 Web 框架 旨在帮助开发人员构建安全 可扩展和可维护的 Web 应用程序 烧瓶是基于Werkzeug和用途Jinja2作为模板引擎 Unlike Django 默认情况下 Flask 不
  • Linux 中的 Whoami 命令

    在本文中 我们将介绍whoami命令 顾名思义 whoami命令打印有效用户 ID 的用户名 换句话说 它显示当前登录用户的名称 如何使用whoami命令 语法为whoami命令如下 whoami OPTION 要显示当前登录用户的名称 请
  • 如何在 CentOS 8 上安装和配置 Redmine

    Redmine 是一款免费的开源项目管理和问题跟踪应用程序 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 Ce
  • Linux 中的 Stat 命令

    stat是一个命令行实用程序 显示有关给定文件或文件系统的详细信息 本文介绍了如何使用stat命令 使用stat命令 语法为stat命令如下 stat OPTION FILE stat接受一个或多个输入FILE名称并包含许多控制命令行为和输
  • 如何在 CentOS 8 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 CentOS
  • Linux 中的 Chgrp 命令(更改组)

    在 Linux 中 每个文件都与一个所有者和一个组相关联 并具有确定哪些用户可以读取 写入或执行该文件的权限 本文介绍了如何使用chgrp命令更改给定文件的组所有权 chgrp命令语法 The chgrp命令采用以下形式 chgrp OPT
  • 如何在 CentOS 7 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 是 Ruby on Rails 框架背后的语言 本文展示了在 CentOS 上安装 Ruby 的几种不同方法 每种安装方法都有自己的优点 您可以选择最适合您的一种安装方法 先决条件 在开始
  • 如何每 5 分钟、10 分钟或 15 分钟运行一次 Cron 作业

    cron 作业是按指定时间间隔执行的任务 可以将任务安排为按分钟 小时 每月的某一天 每月 每周的某一天或这些的任意组合运行 Cron 作业通常用于自动化系统维护或管理 例如备份数据库或数据 使用最新的安全补丁更新系统 检查磁盘空间使用情况
  • Bash:追加到文件

    在 Bash 中 有多种方法可以将文本附加到文件中 本文解释了其中一些 要将文本附加到文件 您需要对其具有写入权限 否则 您将收到权限被拒绝的错误 使用重定向运算符附加到文件 gt gt 重定向允许您捕获命令的输出并将其作为输入发送到另一个
  • 在 C/C++ 中使用 INT_MAX 和 INT_MIN

    在本文中 我们将了解在 C C 中使用 INT MAX 和 INT MIN 这些实际上是有用的宏 它们表示最大和最小整数值 让我们用一些例子来看看它 使用 INT MAX 和 INT MIN INT MAX 是一个表示最大整数值的宏 同样
  • Google Guice 依赖注入示例教程

    谷歌指南是在应用程序中自动执行依赖项注入的框架 如果您直接遇到这里 我建议您查看一下依赖注入示例在这里我们了解了传统对象创建方法的问题以及依赖注入的实现优势 在上一篇教程中 我们学习了如何在应用程序中手动实现依赖注入 但是 当应用程序中的类
  • 如何在 CentOS 7 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LEMP Linux Nginx MySQL MariaDB PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 CentOS 7