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 版本。