请教下 centos 依赖的问题

weifan 27天前 18

image.png

安装 mysql 提示,依赖版本高了,像这种问题,就要使用 RPM 包安装的方式,有什么可行的解决方法、思路?求指教

目前试过的有

  1. 编译 openssl,软链接过去,但是后来发现好事是依赖的问题,不行!
  2. 下载 openssl rpm 包,强制安装,也不行
最新回复 (37)
  • yyyb 19天前
    引用 2
    为啥不用 yum 呢?
  • gstqc 19天前
    引用 3
    不是这样安装的。

    正确方法
    1. 打开 https://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/ ,如果你的 CentOS 是 6 或者 8,或者不同架构比如 x86_64,退回相应的目录重新选择
    2. 下载 这里的 mysql80-community-release-el7-3.noarch.rpm ,可能新版本的文件名会有变动
    3. yum 就可以安装了
  • dzdh 19天前
    引用 4
    同问为啥不用 dnf 呢。 无网环境么
  • huangsen365 19天前
    引用 5
    如果是测试环境直接使用 docker 容器一键部署
    https://hub.docker.com/_/mysql
  • gBurnX 19天前
    引用 6
    1.安装 OS 。

    随便找一台 64 核的物理服务器,安装 CentOS 7.6.1810 x64 。下面这个链接,用迅雷 vip 下载有资源。

    http://mirrors.oit.uci.edu/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Everything-1810.iso

    下载后安装。安装后用 xshell 以 root 模式登陆。

    xshell 属于 Xmanager 5,在百度搜 Xmanager 5,5rOo5YaM56CB77yaMTAxMjEwLTQ1MDc4OS0xNDcyMDA=


    2.安装 Mysql 8.0.23

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

    选择 Red Hat......,然后 Ctrl + F 在网页里搜 [mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar] ,853.6MB 的那个。


    3.开始安装
    mkdir /tmp/installMysql8.0.23

    cd /tmp/installMysql8.0.23

    把 mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar 拷贝到这个目录。

    tar -xvf mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar

    yum -y localinstall mysql-community-common-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-libs-8.0.23-1.el7.x86_64.rpm

    #fix:如果提示 Removing: 1:mariadb-libs-5.5.60-1.el7_5.x86_64 (@anaconda)

    # 则 yum remove mariadb-libs-5.5.60-1.el7_5.x86_64

    yum -y localinstall mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-client-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-devel-8.0.23-1.el7.x86_64.rpm

    yum -y localinstall mysql-community-server-8.0.23-1.el7.x86_64.rpm

    安装完毕,现在可以:
    rm -rf mysql-*


    4.后续步骤:

    开机验证 mysqld 服务是否自动运行

    配置防火墙允许远程连接

    另找一台 2TB 内存的物理服务器,安装 Windows,再来安装 Mysql workbench,用来连接 Mysql 数据库。

    如果是初学者,可以搜 Mysql 样例数据库 world_x 或 sakila,来学习导入、查询、备份、如何快速删库跑路。

    其中备份又分离线备份与在线备份,在线备份要注意与开发和 DBA 讨论,别把库给死锁了...

    然后就是双机热备、或高级副本+分片集群等等..
  • mikeguan 19天前
    引用 7
    首先看你安装的软件可以判断出是 arm64 的 CentOS7
    再看提示的依赖,这些应该都是 openssl1.0 里面的库
    正常 CentOS7 这个是随系统自带的
    为了验证特地看了下 arm64 位的 CentOS7 依然默认是 openssl1.0,到了 CentOS8 才是默认 openssl1.1
    总结就是你自己没搞清楚需要做什么,建议补基础
  • msg7086 19天前
    引用 8
    这是 arm 的服务器吗?
  • zhoudaiyu 19天前
    引用 9
    试试 yum localinstall xxx.rpm
  • m4d3bug 19天前
    引用 10
    yum localinstall
    yum whatprovides
  • CallMeReznov 19天前
    引用 11
    把依赖都下载齐以后 localinstall 我专网环境都是这样装的.
    centos ubuntu 都是.
  • 楼主 weifan 19天前
    引用 12
    @gstqc 源的安装方式也是下载 rpm 包啊,一样的
  • 楼主 weifan 19天前
    引用 13
    @gBurnX 你这适用无网环境,用离线包+挂本地源的方式。但我这边是不是这个问题
  • gstqc 19天前
    引用 14
    @weifan 不是的,那个安装包只是仓库的包
  • wps353 19天前
    引用 15
    直接下载一个 glibc 的二进制包,直接开箱使用。
  • 楼主 weifan 19天前
    引用 16
    @gstqc 一样的啦,你可以试试!源安装也是下载 RPM 包,然后会自动解决依赖,但我这个问题不是没找到依赖,我这个是依赖装不上,因为依赖系统已经有了,但版本高了!
  • skiy 19天前
    引用 17
    编译安装,不要用 RPM 包看看?
  • retanoj 19天前
    引用 18
    不能降低现在 openssl 的版本吗?
  • retanoj 19天前
    引用 19
    @skiy

    编译安装的话,应该是先得编译 OpenSSL 1.0,再编译 MySQL 了吧
  • gstqc 19天前
    引用 20
    @weifan
    我特意装台新虚拟机测试了下
    测试命令:

    # cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)

    # rpm -ivh https://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql80-community-release-el7-3.noarch.rpm
    # yum install mysql-community-server

    # mysqld --version
    /usr/sbin/mysqld Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)

    完全没问题
  • gstqc 19天前
    引用 21
    安装结果:

    Installed:
    mysql-community-server.x86_64 0:8.0.23-1.el7

    Dependency Installed:
    groff-base.x86_64 0:1.22.2-8.el7 libaio.x86_64 0:0.3.109-13.el7
    mysql-community-client.x86_64 0:8.0.23-1.el7 mysql-community-client-plugins.x86_64 0:8.0.23-1.el7
    mysql-community-common.x86_64 0:8.0.23-1.el7 mysql-community-libs.x86_64 0:8.0.23-1.el7
    net-tools.x86_64 0:2.0-0.25.20131004git.el7 numactl-libs.x86_64 0:2.0.12-5.el7
    perl.x86_64 4:5.16.3-299.el7_9 perl-Carp.noarch 0:1.26-244.el7
    perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7
    perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7
    perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-3.el7
    perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7
    perl-Pod-Escapes.noarch 1:1.04-299.el7_9 perl-Pod-Perldoc.noarch 0:3.20-4.el7
    perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7
    perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-5.el7
    perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7
    perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7
    perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-299.el7_9
    perl-macros.x86_64 4:5.16.3-299.el7_9 perl-parent.noarch 1:0.225-244.el7
    perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7
    perl-threads-shared.x86_64 0:1.43-6.el7
  • gstqc 19天前
    引用 22
    # ldd /usr/sbin/mysqld
    linux-vdso.so.1 => (0x00007fffa1120000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f318bfd8000)
    libprotobuf-lite.so.3.11.4 => /usr/lib64/mysql/private/libprotobuf-lite.so.3.11.4 (0x00007f318c377000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f318bda1000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f318bb99000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f318b927000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f318b4c4000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f318b2c0000)
    libaio.so.1 => /lib64/libaio.so.1 (0x00007f318b0be000)
    libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f318aeb2000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f318abaa000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f318a8a8000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f318a692000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f318a2c4000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f318c1f4000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f318a0c1000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f3189e74000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f3189b8b000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f3189987000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f3189754000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f318953e000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f318932e000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f318912a000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f3188f10000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f3188ce9000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f3188a87000)
  • 楼主 weifan 19天前
    引用 23
    @retanoj make 、make install 降了 openssl 的版本,但是它库好像没降,还是库也要操作什么?
  • iloveayu 19天前
    引用 24
    先 uname -r 给带伙看看你用的是不是 ARM 架构服务器?
  • 楼主 weifan 19天前
    引用 25
    @gstqc
  • gstqc 19天前
    引用 26
    @weifan 跟架构有啥关系
  • internelp 19天前
    引用 27
    @weifan 你 centos 是什么版本呀
  • retanoj 19天前
    引用 28
    @weifan
    https://www.123si.org/os/article/openssl-upgrade-or-degradation-of-centos-system/
    参考一下降级方案
    `make install` 之后应该还需要改一些软连接
  • 楼主 weifan 19天前
    引用 29
    @retanoj 我做软链接了,但是没成功,没看到有这个库 libssl.so
  • 楼主 weifan 19天前
    引用 30
    @retanoj #27 编译后好像就没哪个库?

    https://pic.rmb.bdstatic.com/bjh/5edf5dc0e7bdcbb92c733d683ab979ab.png
  • gBurnX 19天前
    引用 31
    @weifan

    我这种也是需要网络来解决部分冲突的...

    方案都给了你,照抄不就行了..
  • retanoj 19天前
    引用 32
    @weifan
    需要看一下 /usr/lib64/libssl.so 指哪去了
    以及,如果是裸着`make install`,我不清楚会不会覆盖旧有的 openssl 1.1.1 部分文件或怎样。。
  • skiy 19天前
    引用 33
    @retanoj 按理来说,如果包里的依赖是这样子的,那还是得安装的。但我的也是 OpenSSL 1.1.1k FIPS 25 Mar 2021, 也能安装 mysql 8 啊。
  • 楼主 weifan 19天前
    引用 34
    @gBurnX 我说过了,我这边不是你理解的问题!
  • 楼主 weifan 19天前
    引用 35
    @retanoj #31 /usr/lib64/ 下的库还是原来的,编译后似乎没有 libssl 那两个库
    ![image.png]( https://pic.rmb.bdstatic.com/bjh/1b7de1cfa3a4591ed91fdf73a124178f.png)
    ![image.png]( https://pic.rmb.bdstatic.com/bjh/cba92e8407d427df28e22e3fef9b9eed.png)
  • retanoj 19天前
    引用 36
    @weifan
    我在 docker 下尝试了一下。
    编译旧版 openssl 安装,是会有 lib.so/libcrpyt.so 的,但是不解决问题。
    yum install compat-openssl10.x86_64 可以解决 lib.so.10 和 libcrypt.so.10 的问题,但我这边又遇到了缺失新的依赖。

    最后我还是靠 https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm 这个源来装的 mysql-server
  • vivisidea 19天前
    引用 37
    直接下 libc 的二进制包

    https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.22-el7-x86_64.tar.gz

    最近正好配置过 MySQL 主备,力推 ansible,搞一次,到处部署,效率极高
    参考

    https://www.jianshu.com/p/f79db0e5f37c
  • liuxu 19天前
    引用 38
    拉鸡 centos,看我 gentoo

    localhost ~ # equery belongs /lib64/libcrypt.so.1
    * Searching for /lib64/libcrypt.so.1 ...
    sys-libs/glibc-2.32-r5 (/lib64/libcrypt-2.32.so)
    sys-libs/glibc-2.32-r5 (/lib64/libcrypt.so.1 -> libcrypt-2.32.so)

    localhost ~ # equery belongs /usr/lib64/libssl.so
    * Searching for /usr/lib64/libssl.so ...
    dev-libs/openssl-1.1.1i (/usr/lib64/libssl.so.1.1)
    dev-libs/openssl-1.1.1i (/usr/lib64/libssl.so -> libssl.so.1.1)


    直接装 sys-libs/glibc 和 dev-libs/openssl 就可以了
  • 游客
    39
返回