引言
还是在用 python flask
重构 nodejs
,而后装置数据库mariadb
的时候呈现一个坑,心愿大家看到后能少走一些弯路。
装置
-
查看仓库中有没有安装包
yum list *mariadb*
查看后是有的:
mariadb.x86_64
,mariadb-server.x86_64
应用上面命令装置yum install mariadb mariadb-server
留神一下,一开始咱们是没有配置截图中
mariadb
这个仓库的。所以装置是从appstream
仓库装置的(也能够从装置命令中看到,装置命令是辨别大小写的)。 -
装置
python
的mariadb
包pip3.9 install mariadb
报错!具体阐明短少
MariaDB Connector/C
! -
装置
MariaDB Connector/C
yum install mariadb-devel
-
重新安装
python
的mariadb
包pip3.9 install mariadb
报错!具体阐明
MariaDB Connector/C
版本不够! -
查看怎么降级
yum check-update
我曾经配置了
mariadb
仓库,所以显示降级请装置MariaDB-shared
。不然应该是没有可降级的我的项目
appstream
外面有MariaDB-shared
吗?没有。那还降级个毛线啊。。。 - 完蛋!!!
官网装置
没方法啊,centos
自带的仓库没有能够用的了,只能去官网看看。
首先,这个是 centos
官网举荐的仓库:centos official recommended repository。千万别被搜索引擎骗了,一些废除的和不举荐的和没有列举的就不要用了。不过看下来,也不晓得各个仓库里有些什么。
- 查看
mariadb
官网:install mariadb with yum。应用yum
装置mariadb
-
其中提到了让咱们本人建设一个
`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
的地位也有很多,亲测都是一样的。 - 而后,应该就能够看到
mariadb
仓库里的软件啦: -
依照文档装置
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 步的文档里,有这个工具:MariaDB Repository Configuration Tool。用来帮忙生成
MariaDB
官网仓库的配置文件内容(【官网装置】中第 2 步)。 -
查看本人零碎的版本、抉择
mariadb
版本、抉择仓库镜像[root@localhost ~]# cat /etc/redhat-release CentOS Stream release 8
在工具中抉择:
不必仓库镜像也挺快的,就用【官网装置】中第 2 步中的三个
- 而后再列举一下列表,你会发现还是没有!!搜索引擎让你“在仓库配置文件前面加上
enable=1
”,“yum clean all
”,“yum list --disablerepo appstream
”,“rm -rf /var/dnf /var/yum /var/rpm
”都是没用的!!!本人更换了仓库配置文件里不同的mariadb
版本、不同的gpgkey
门路、不同的仓库里零碎版本的门路。后果都yum list
不进去,就是少了那几个要害的包。 - 通过上一步的试验,基本上确定不是本人的问题了,必定是官网仓库有问题,导致我 list 不进去,然而搜索引擎也搜寻不出个所以然来。
-
不过,你猜怎么着。首先再次查看零碎版本号。我的是“
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
- 从新在
MariaDB Repository Configuration Tool
里抉择:发现什么了,你看看你看看,
module_hotfixes = 1
!!!!! -
实现装置
这下找到
MariaDB-client
,MariaDB-server
,MariaDB-shared
了吧!
install MariaDB-server MariaDB-clientinstall MariaDB-devel
MariaDB installation all done
pip install mariadb all done
另外
mariadb
的python
用法能够参考这篇文档:python mariadb- 其实能够从包的名字中看出端倪,【appstream 仓库】里的都是小写
mariadb
,【mariadb 官网仓库】里的都是大写MariaDB
- 数据库的一些操作能够看这里:操作数据度
- 数据库字段类型:数据库字段类型