因为在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