让 MySQL 的存档存储引擎在 CentOS 5.4 上运行的最简单方法是什么

让 MySQL 的存档存储引擎在 CentOS 5.4 上运行的最简单方法是什么

CentOS/RHEL 中默认的 MySQL 版本未启用存档存储引擎。我想在我们的 CentOS 5.4 服务器上启用它。我最初的反应是修改 SRPMS 文件的 SPEC 文件,但是这表明这可能不是那么容易。总是可以选择从 MySQL 源代码构建,但如果可能的话,我更愿意留在 RPMS/Yum 世界中。

有人能使用 RPMS/SRPMS/Yum 成功解决此问题吗?是否有一些补丁可让此问题在 SRPMS 上完美运行?

答案1

我通过更改 MySQL 的 SPECS 文件构建了 MySQL,并启用了存档存储引擎。以下是有关如何启动和运行它的详细步骤:

安装 yum-utils:

sudo yum install yum-utils

将 RedHat 的 SRPMS 包含到 CentOS 存储库中:

sudo vi /etc/yum.repos.d/srpm.repo

添加以下 repo 配置:

[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

我无法$releasever在 URL 中使用,但必须设置为5Server

下载 SRPMS 包:

 yumdownloader --source mysql-server

为非 root 用户设置构建区域:

 yum install rpm-build redhat-rpm-config
 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
 echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
 rpm -i mysql-server-5.0.xx.src.rpm

安装所需的开发工具:

 yum install gcc-c++ libtool gperf automake ncurses-devel readline-devel openssl-devel zlib-devel

要找到所有必需的库和工具,只需尝试以下命令:

 cd ~/rpmbuild/SPECS/

修改 spec 文件:

 vi ~/rpmbuild/SPECS/mysql.spec

我在规范文件中添加了以下内容(我还想包含联合存储引擎):

 %configure \
    ...
    --with-archive-storage-engine \
    --with-federated-storage-engine \
    ...

意识到:在 MySQL 5.1 中这可能已经发生了变化,plugin用于指定存储引擎。

为了加快构建过程,您应该考虑进行以下更改:

 %{!?runselftest:%define runselftest 0}

然后运行(以非 root 用户身份):

 cd ~/rpmbuild/SPECS/
 rpmbuild -ba mysql.spec

您将在 中找到 RPM ~/rpmbuild/RPMS/i386。只需安装并运行 MySQL,您就会获得一个启用了存档存储引擎的 MySQL 版本。

相关内容