情况说明

由于工作需要,需要在一台装有 CentOS 系统的测试服务器上安装 MysqL ,由于该服务器上存有其他比较重要的测试数据,所以不能连接外网。由于之前安装 MysqL 一直都是使用 yum 命令一键搞定的,所以手动安装的话还是有些麻烦的。所以在这里我将我在安装过程中遇到的一些问题记录下来。

在开始之前不得不吐槽一下,网上有一些教程实在是太坑爹,教程直接复制粘贴别人的,不写环境,没有版本号说明。看着就火大。

本文安装的MysqL为安装最基本的功能,如需要安装其他附加功能,请查看官方文档。

本文适用于服务器不能联网的情况下的安装操作

安装

环境说明

以下是我在写本文章时所用到的一些环境说明。

对于其他版本版本的环境,我没有进行测试,所以不保证能够成功,不过小版本号之间不同应该没有什么大碍。

项目 版本 说明
操作系统 CentOS 7.2.1511 x86_64 最小化安装
MysqL Community 5.7.18-1.el7.x86_64 rpm包

注:可以使用 cat /etc/redhat-release 命令,来确定自己安装的CentOS的具体版本。

准备工作

  • 下载 MysqL 的安装包,这里推荐使用搜狐的镜像站下载,因为从MysqL官网下载的速度实在感人,镜像地址 选择对应的版本号下载即可。我在此使用的rpm包有以下4个:

    • MysqL-community-client-5.7.18-1.el7.x86_64.rpm

    • MysqL-community-common-5.7.18-1.el7.x86_64.rpm

    • MysqL-community-libs-5.7.18-1.el7.x86_64.rpm

    • MysqL-community-server-5.7.18-1.el7.x86_64.rpm

    以上四个rpm包是必须的,如果还需要其他的功能,可以自行进行下载。以当前版本为例,包含全部的rpm包的文件为MysqL-5.7.18-1.el7.x86_64.rpm-bundle.tar

  • 下载 numactl 软件包:

    • numactl-2.0.9-6.el7_2.x86_64.rpm

    • numactl-devel-2.0.9-6.el7_2.x86_64.rpm

    • numactl-libs-2.0.9-6.el7_2.x86_64.rpm

  • 下载其他相关支持:

    • perl-Data-Dumper-2.145-3.el7.x86_64.rpm

    • libaio-0.3.109-13.el7.x86_64.rpm

    以上软件包是待会儿要用到的,请提前准备好。这个软件包网上直接搜索就能下载得到,这里提供一个下载地址下载地址 直接在搜索框搜索即可,下载时注意看版本号和位数(64位)

  • 将下载好的软件包一并上传到服务器上,准备安装。

安装

以下只是我的安装顺序,其实这些软件包的安装顺序没有太多明确的要求,不一定非要按以下顺序安装,但是可以会有一些相关的依赖问题,如果抛出依赖相关的错误,只要把上边对应的依赖安装上在重试一次即可。

  • 安装 libaio-0.3.109-13.el7.x86_64.rpm

    rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
  • 安装perl-Data-Dumper-2.145-3.el7.x86_64.rpm

    rpm -ivh perl-Data-Dumper-2.145-3.el7.x86_64.rpm

    以上这两项安装时我并没有遇到依赖问题,如果在实际安装时遇到了,请查看相关提示,在下载对应的包安装即可。

  • 安装numactl相关

    rpm -ivh numactl*

    如果不安装此包,我们将会得到如下错误

    error: Failed dependencies:
    libnuma.so.1()(64bit) is needed by MysqL-community-server-5.7.18-1.el7.x86_64
    libnuma.so.1(libnuma_1.1)(64bit) is needed by MysqL-community-server-5.7.18-1.el7.x86_64
    libnuma.so.1(libnuma_1.2)(64bit) is needed by MysqL-community-server-5.7.18-1.el7.x86_64

  • 若此时直接安装MysqL,我们会得到一个异常:

    warning: MysqL-community-libs-5.7.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature,key ID 5072e1f5: NOKEY error: Failed dependencies:
    MysqL-community-common(x86-64) >= 5.7.9 is needed by MysqL-community-libs-5.7.18-1.el7.x86_64
    mariadb-libs is obsoleted by MysqL-community-libs-5.7.18-1.el7.x86_64

第一行还能看明白,是依赖问题,第二行的“mariadb-libs 被废弃”是什么鬼?废弃了为什么不提供一个新的还要出现这种弱智提示呢?经过一番搜寻,才发现是因为在CentOS 7上已经有一个mariadb 而这个会与 MysqLmariadb发生冲突。所以此时我们需要将系统自带的mariadb卸载掉,然后使用MysqL自带的mariadb

我们先来查看系统安装的版本rpm -qa | grep mariadb,随后进行卸载,卸载的过程中会提示不能卸载,因为有其他软件依赖此包,我们要加上 --nodeps 参数强制卸载

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

注意我上述写的 mariadb-libs-5.5.37-1.el7_0.x86_64 是我刚刚用rpm -qa | grep mariadb查询出的结果。不同版本可能会有所不同。

  • 解决好这个问题后,就可以安装MysqL了,rpm -ivh MysqL-community-* 即可。

启动

使用 service MysqLd start 命令启动MysqL实例,为了验证,我们使用service MysqLd status验证一下。输出结果如下:

Redirecting to /bin/systemctl status MysqLd.service
● MysqLd.service - MysqL Server
Loaded: loaded (/usr/lib/systemd/system/MysqLd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2017-07-03 15:39:02 CST; 5s ago

Docs: man:MysqLd(8)
      http://dev.MysqL.com/doc/refman/en/using-systemd.html

Process: 28054 ExecStart=/usr/sbin/MysqLd --daemonize --pid-file=/var/run/MysqLd/MysqLd.pid $MysqLD_OPTS (code=exited,status=0/SUCCESS)
Process: 27978 ExecStartPre=/usr/bin/MysqLd_pre_systemd (code=exited,status=0/SUCCESS)
Main PID: 28056 (MysqLd)
CGroup: /system.slice/MysqLd.service

└─28056 /usr/sbin/MysqLd --daemonize --pid-file=/var/run/MysqLd/MysqLd.pid

Jul 03 15:38:57 nodemaster systemd[1]: Starting MysqL Server...
Jul 03 15:39:02 nodemaster systemd[1]: Started MysqL Server.

登录

我们使用 MysqL -u root时会提示我们要输入密码,这个密码存储在 /var/log/MysqLd.log 文件内,是系统自动生成的。我们可以使用 cat /var/log/MysqLd.log | grep password 命令将密码找出来,然后填入,进行登录,登录之后进行修改密码等操作。这些操作在官方文档上都有详细的说明,可以自行查看。

结尾

以上内容若有不妥之处还请指出,我会在第一时间尽心修改。

无外网环境下CentOS 7 安装MySQL 5.7.18的更多相关文章

  1. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  2. Android – 将SQLite与MySQL同步的最佳方式

    参见英文答案>Synchronizingclient-serverdatabases5个我正在开发一个包含网络应用和移动应用程序的项目,该应用程序记录每日用户的数据.用户可以删除,更新他们的数据,他们可以使用许多设备插入数据.我打算这样开发:用户输入他们的数据然后插入sqlite.服务将定期启动(每5小时或每小时)以使用时间戳与MysqL同步.我确实在互联网上使用服务和时间戳搜索了一个样本,但我一

  3. android – 如何将唯一的GCM注册标识存储到MySQL中

    我正在设置GoogleCloudMessaging机制的服务器端,使用MySQL存储移动应用提供的注册ID.Google可以发出最多4k个注册码,我被迫将其存储在TEXT字段中.所有的好,到目前为止,问题是我必须处理这样的情况:>用户登录到应用程序>该应用从google请求注册ID>应用程序将新的注册ID发送到应用服务器>服务器存储该注册ID并将其链接到当前登录的用户>该用户注销并且新用户登录>应

  4. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. nodeJs链接Mysql做增删改查的简单操作

    本篇文章主要介绍了nodeJs链接Mysql做增删改查的简单操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. PHP连接MYSQL数据库的3种常用方法

    这篇文章主要介绍了PHP连接MYSQL数据库的3种常用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    这篇文章主要介绍了PHP使用PDO创建MySQL数据库、表及插入多条数据操作,结合实例形式总结分析了php基于pdo的mysql数据库创建、数据表创建以及多条数据插入操作相关实现技巧,需要的朋友可以参考下

  8. MybatisPlus如何处理Mysql的json类型

    这篇文章主要介绍了MybatisPlus如何处理Mysql的json类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  9. 基于PHP+mysql实现新闻发布系统的开发

    这篇文章主要介绍了基于PHP+mysql实现新闻发布系统的开发,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. nodejs操作mysql实现增删改查的实例

    下面小编就为大家带来一篇nodejs操作mysql实现增删改查的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部