乐趣区

关于centos:centos-stream-8安装mariadb和python-mariadb包

引言

还是在用 python flask 重构 nodejs,而后装置数据库mariadb 的时候呈现一个坑,心愿大家看到后能少走一些弯路。

装置

  1. 查看仓库中有没有安装包

    yum list *mariadb*

    查看后是有的:mariadb.x86_64mariadb-server.x86_64
    应用上面命令装置

    yum install mariadb mariadb-server

    留神一下,一开始咱们是没有配置截图中 mariadb 这个仓库的。所以装置是从 appstream 仓库装置的(也能够从装置命令中看到,装置命令是辨别大小写的)。

  2. 装置 pythonmariadb

    pip3.9 install mariadb

    报错!具体阐明短少MariaDB Connector/C

  3. 装置MariaDB Connector/C

    yum install mariadb-devel
  4. 重新安装 pythonmariadb

    pip3.9 install mariadb

    报错!具体阐明 MariaDB Connector/C 版本不够!

  5. 查看怎么降级

    yum check-update

    我曾经配置了 mariadb 仓库,所以显示降级请装置 MariaDB-shared。不然应该是没有可降级的我的项目
    appstream 外面有 MariaDB-shared 吗?没有。那还降级个毛线啊。。。

  6. 完蛋!!!

官网装置

没方法啊,centos自带的仓库没有能够用的了,只能去官网看看。
首先,这个是 centos 官网举荐的仓库:centos official recommended repository。千万别被搜索引擎骗了,一些废除的和不举荐的和没有列举的就不要用了。不过看下来,也不晓得各个仓库里有些什么。

  1. 查看 mariadb 官网:install mariadb with yum。应用 yum 装置mariadb
  2. 其中提到了让咱们本人建设一个 `mariadb 官网的 yum 仓库。

    cd /etc/yum.repos.d
    touch MariaDB.repo
    vi MariaDB.repo

    文档中写到了两种配置文件的内容。不同点其实就在于仓库地址的不一样、还有 gpgkey 寄存地位不一样:
    https://rpm.mariadb.org 最终会跳到 https://mirror.mariadb.org

    [mariadb]
    name = MariaDB
    baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
    gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    name有没有后缀 -{版本号} 亲测都能够
    $releasever, $basearch 这两个换成明确的仓库里的目录也能够,或者就写成两个。

    [mariadb]
    name = MariaDB-10.3.34
    baseurl= http://archive.mariadb.org/mariadb-10.3.34/yum/centos/$releasever/$basearch
    gpgkey= https://archive.mariadb.org/PublicKey
    gpgcheck=1

    所以,这三个:https://rpm.mariadb.org, https://mirror.mariadb.org, http://archive.mariadb.org,写哪个都能够。大家须要点进去找一找本人想要的版本,外面 gpgkey 的地位也有很多,亲测都是一样的。

  3. 而后,应该就能够看到 mariadb 仓库里的软件啦:
  4. 依照文档装置

    yum install MariaDB-client MariaDB-server

    祝贺祝贺,取得一段报错:

    [root@localhost ~]# yum install MariaDB-client
    上次元数据过期查看:0:00:30 前,执行于 2023 年 07 月 05 日 星期三 16 时 33 分 51 秒。所有的匹配后果均曾经被参数的模块化过滤条件筛除: MariaDB-client
    谬误:没有任何匹配: MariaDB-client

    这是因为,认真看看上一步的截图,基本就没有MariaDB-client, MariaDB-server!!!

解决之道

终于到了这篇文章想要聊的问题了。

  1. 在【官网装置】中第 1 步的文档里,有这个工具:MariaDB Repository Configuration Tool。用来帮忙生成 MariaDB 官网仓库的配置文件内容(【官网装置】中第 2 步)。
  2. 查看本人零碎的版本、抉择 mariadb 版本、抉择仓库镜像

    [root@localhost ~]# cat /etc/redhat-release 
    CentOS Stream release 8

    在工具中抉择:

    不必仓库镜像也挺快的,就用【官网装置】中第 2 步中的三个

  3. 而后再列举一下列表,你会发现还是没有!!搜索引擎让你“在仓库配置文件前面加上 enable=1”,“yum clean all”,“yum list --disablerepo appstream”,“rm -rf /var/dnf /var/yum /var/rpm”都是没用的!!!本人更换了仓库配置文件里不同的mariadb 版本、不同的 gpgkey 门路、不同的仓库里零碎版本的门路。后果都 yum list 不进去,就是少了那几个要害的包。
  4. 通过上一步的试验,基本上确定不是本人的问题了,必定是官网仓库有问题,导致我 list 不进去,然而搜索引擎也搜寻不出个所以然来。
  5. 不过,你猜怎么着。首先再次查看零碎版本号。我的是“Red Hat Enterprise Linux 8

    [root@localhost ~]# cat /etc/*release*
    CentOS Stream release 8
    NAME="CentOS Stream"
    VERSION="8"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="8"
    PLATFORM_ID="platform:el8"
    PRETTY_NAME="CentOS Stream 8"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:8"
    HOME_URL="https://centos.org/"
    BUG_REPORT_URL="https://bugzilla.redhat.com/"
    REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8"
    REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
    CentOS Stream release 8
    CentOS Stream release 8
    cpe:/o:centos:centos:8
  6. 从新在 MariaDB Repository Configuration Tool 里抉择:

    发现什么了,你看看你看看,module_hotfixes = 1!!!!!

  7. 实现装置

    这下找到 MariaDB-client,MariaDB-server,MariaDB-shared 了吧!
    install MariaDB-server MariaDB-client

    install MariaDB-devel

    MariaDB installation all done

    pip install mariadb all done

另外

  • mariadbpython 用法能够参考这篇文档:python mariadb
  • 其实能够从包的名字中看出端倪,【appstream 仓库】里的都是小写mariadb,【mariadb 官网仓库】里的都是大写MariaDB
  • 数据库的一些操作能够看这里:操作数据度
  • 数据库字段类型:数据库字段类型
退出移动版