【软件移植】mysql-5.0.x在银河麒麟V10上的编译安装

文章描述了在银河麒麟V10桌面OS_飞腾版本上,由于缺乏aarch64架构的MySQL5.0.24二进制包,需要从源码进行编译的过程。这包括安装autotools-dev以替换架构识别文件,添加mysql用户和组,配置并编译项目,以及解决编译时的窄化转换错误。最后,文章提到了如何设置系统路径和库路径以使用新编译的MySQL。
摘要由CSDN通过智能技术生成

背景:

        mysql-5.0.x没有aarch64架构的二进制安装包,所以需要从源码进行移植。

准备:

        1.银河麒麟V10桌面OS_飞腾版本

        2.mysql源码:https://downloads.mysql.com/archives/community/

                此处选择5.0.24版本的源码

         

 编译:

 1.解压并进入源码目录:

tar -xvf mysql-5.0.24.tar.gz
cd mysql-5.0.24

 2.安装autotools-dev,并替换架构识别相关文件【#1】

# 说明:mysql版本太老,不识别aarch64架构
# 用autotools-dev提供的config.guess和config.sub文件替换源码中的
# 可以解决configure阶段架构不支持的问题。
apt install autotools-dev
cp -af /usr/share/misc/config.* ./

3.添加mysql用户和组:

groupadd mysql
useradd -g mysql mysql

4.配置项目,编译并安装

CXXFLAGS="-std=c++98" ./configure --prefix=/usr/local/mysql
make -j4
make install
cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
./bin/mysql_install_db --user=mysql
chown -R root  .
chown -R mysql var
chgrp -R mysql .
./bin/mysqld_safe --user=mysql &

编译参考源码目录下INSTALL-SOURCE文件,但需要改动。配置项目时,需要前面加上 CXXFLAGS="-std=c++98"  。【#2】

如果系统中没有安装其他版本的mysql,运行./configure时可以选择不加--prefix选项。【#3】

5.使用方法

要使用mysql,需要先将mysql相关路径加入系统PATHLD_LIBRARY_PATH

PATHLD_LIBRARY_PATH的修改,可以直接export,也可以加入到/etc/目录下的profile、bashrc等文件中。

# 直接export,关机后失效。也可以写到/etc/profile或/etc/bashrc中
export PATH=$PATH:/usr/local/mysql/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql

如果不想改动系统环境变量或者保留系统原有的mysql,也可以每次使用前,加上mysql的路径。类似下面的两种用法:

PATH=/usr/local/mysql/bin:$PATH  LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql:$LD_LIBRARY_PATH  mysqladmin create xxxx
# 或
LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql:$LD_LIBRARY_PATH  /usr/local/mysql/bin/mysqladmin create xxxx

【#1】直接运行./configure会出现报错,是因为mysql-5.x只认识arm不认识aarch64架构。这些架构识别相关的内容是源码中config.guess和config.sub提供的,属于autotools的内容。我们安装当前系统匹配的autotools工具,并从中复制对应的文件到当前工程,就能解决架构不识别问题

【#2】make编译过程中可能会出现:“mysqld.cc:5995:1: error: narrowing conversion of ‘18446744073709551615’ from ‘ulong’ {aka ‘long unsigned int’} to ‘longlong’ {aka ‘long int’} [-Wnarrowing]”,这是因为系统默认使用c++11,mysql-5.x版本较老,需要c++98的规则来编译。所以需要手动指定CXXFLAGS

【#3】--prefix选项是指定make install时候的安装目录,这里加上是为了不覆盖系统自带的高版本mysql

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值