在arm上编译和安装MySQL5.7

因为在MySQL官方没有提供arm架构下的5.7.x的版本,因此,需要自己去编译一份。

首先去官网下载带boost的源码包,地址:https://dev.mysql.com/downloads/mysql/

选择红框中的,如果选择上面的只有源码还要去先下载boost,多此一举。

编译过程很简单:
(1)安装相应的lib库

yum install -y gcc gcc-c++ ncurses-devel bison cmake openssl-devel libtirpc-devel libaio-devel

(2)进入目录,生成cmake

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录
-DSYSCONFDIR=/etc \ #mysql配置文件存放目录
-DMYSQL_DATADIR=/u01/mysql/data \ #数据文件存放目录
-DMYSQL_UNIX_ADDR=/u01/mysql/tmp/mysql.sock \ #链接文件
-DWITH_BOOST=/root/mysql_aarch64/mysql-5.7.38/boost/boost_1_59_0 \ #指定boost库的位置
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认的字符集校对规则
-DDEFAULT_CHARSET=utf8 \ #指定默认字符集编码
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安装PERFSCHEMA存储引擎
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SYSTEMD=1 \ #让系统可以管理mysql数据库
-DWITH_DEBUG=0 

在编译过程可能遇到的问题及解决方法:

编译报错 解决方法
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage yum install -y make
Cannot find appropriate system libraries for WITH_SSL=system. yum install -y openssl-devel
Package ‘libtirpc‘, required by ‘virtual:world‘, not found yum install -y libtirpc-devel
Could not find rpcgen (1)wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.1/rpcsvc-proto-1.4.1.tar.xz
(2)xz -d rpcsvc-proto-1.4.1.tar.xz
(3)tar -xvf rpcsvc-proto-1.4.1.tar
(4)cd rpcsvc-proto-1.4.1
(5)./configure
(6)make && make install
The C compiler identification is unknown 做一个gcc的软链接:ln -s /usr/local/gcc/bin/gcc /usr/bin/cc
Please do not build in-source. Out-of source builds are highly 在cmake时候加入字段:-DFORCE_INSOURCE_BUILD=1

(3)make && make install
(4)将编译后的文件夹打包成tar.gz,就可以在任何arm架构下使用了。

以上就是编译过程,安装时,使用以下步骤:
(1)解压文件夹, tar zxf mysql_5.7.38_aarch.tar.gz -C /usr/local
(2)做一个软链接,ln -s /usr/local/mysql_5.7.38 /usr/local/mysql
(3)创建用户和组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

(4)找一个my.cnf,需要提前将my.cnf中对应的数据目录创建好,例如:

mkdir -p /u01/mysql/{mysql_data,log,mysql_undolog,mysql_redolog}
shell> chown -R mysql.mysql /u01/mysql

(5)做初始化:

bin/mysqld --initialize --user=mysql

上面的会生成一个随机的密码,可以用下面的命令查看

grep 'temporary password' /u01/mysql/data/error.log

如果不想生成随机的密码,则可以使用:

bin/mysqld --initialize --user=mysql --initialize-insecure

(6)配置服务:

cp support-files/mysql.server /etc/init.d/suremysql
chkconfig --add emysql
chkconfig --list

(7)启动服务:systemctl start mysql
(8)配置环境变量:在/etc/profile 中加入: export PATH=$PATH:/usr/local/mysql/bin

最后,分享一下5.7.38 arm的版本:

链接:https://pan.baidu.com/s/17_56UlGEwxf_b_LEJnsGlg 
提取码:9527

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注