银河麒麟V10(飞腾,FT-2000+) 源码安装MySQL 5.1.73
环境准备
- 安装Kylin-Server-10-SP1-Release-Build04-20200711-arm64.iso。
- 在MySQL官方网站下载mysql-5.1.73.tar.gz
- 安装依赖环境
# yum install ncurses-devel /* 如果缺少相关的软件包,则在./cofigure时会报错,再根据报错内容安装 */
在银河麒麟V10操作系统中自带openssl版本为1.1.1d,且需要手动安装openssl-devel,因为一些原因这里采用的是源码编译安装的openssl 1.0.1e。
/* 所有操作均以root用户进行 */
# cd ~
# wget https://www.openssl.org/source/openssl-1.0.1e.tar.gz /* 下载openssl-1.0.1e源码包 */
# tar -zxvf openssl-1.0.1e.tar.gz
# cd openssl-1.0.1e
# mkdir -p /usr/local/openssl /* 创建openssl的安装目录 */
# ./configure shared --prefix=/usr/local/openssl
# make -j 4
# make install
源码编译安装MySQL 5.1.73
- MySQL配置
# cd ~
# tar -zxvf mysql-5.1.73.tar.gz
# cd mysql-5.1.73
# ./configure --host=arm-linux --build=arm-linux --prefix=/usr/local/mysql --enable-assembler --with-pthread --enable-static --without-ndb-debug --with-big-tables --with-charset=latin1 --with-collation=latin1_swedish_ci --with-extra-charsets=all --enable-thread-safe-client --with-plugins=max --with-ssl=/usr/local/openssl
mysql 在5.1版本后,配置方法由./configure变为了cmake,且部分配置选项被取消,具体内容可以参看以下这篇文章,详细解释了cmake以及./configure后的选项作用以及两者的对比。
https://blog.csdn.net/weixin_34194087/article/details/92754700?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.nonecase
- 编译
在银河麒麟v10中g++的版本为7.3.0,而mysql 5.1.73适配的g++版本4.x左右,如果直接使用会在编译过程中出现错误。
具体的原因是g++ 4.x使用的是c++98的标准,而g++ 7.3.0使用的c++11,其中在c++11舍弃了类型的隐式转换,从而导致了编译失败。因此,可以选择在银河麒麟V10中安装g++ 4.x版本的编译器,或者对于编译报错的地方直接修改源代码对相关的数据类型做显示转换。
# make -j4 /*时间较长*/
# make isntall
初始化数据库
# mkdir -p /var/lib/mysql /* 创建mysql.sock套接字文件目录 */
# mkdir -p /usr/local/mysql/data /* 创建数据库目录 */
# groupadd mysql /* 新增mysql用户组 */
# useradd -r -g mysql -s mysql /* 新增mysql用于,并指定在mysql用户组 */
# chown -R mysql:mysql /var/lib/mysql
# chown -R mysql:mysql /usr/local/mysql /* 更改权限,避免在初始化时权限不足而失败 */
# cd /usr/local/mysql
/* 初始化数据库,指定用户 基础目录 以及 数据目录 */
# ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysql
/* 拷贝启动脚本以及配置文件到对应目录下 */
# cp ./share/mysql/mysql.server /etc/init.d/mysqld
# cp ./share/mysql/my_large.cnf /etc/my.cnf
# chmod +x /etc/init.d/mysqld
/* 设置mysql启动脚本自启动 */
# chkconfig --add mysqld
# chkconfig mysqld on
# chown -R root:root /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/data/mysql
/* 启动脚本中默认的数据目录位于/var中,需要修改为自定义的位置 */
sed -i 's/\/usr\/local\/mysql\/var/\/usr\/local\/mysql\/data/' /etc/init.d/mysqld
/* 启动数据库 */
# /etc/init.d/mysqld start