ARM架构源码安装MySQL数据库教程
一、环境
电脑信息:M1芯片,MacOS Monterey 12.2.1
Docker信息:Docker DeskTop 4.6.0
容器镜像信息:centos:latest
系统环境:centos 8.4 ARM架构
MySQL 版本:mysql-boost-5.7.28.tar.gz
二、 下载MySQL
2.1 MySQL下载
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
在官网 下载所需版本的MySQL ,因为这次介绍的是源码安装,我下载的版本为mysql-boost-5.7.28.tar.gz。
2.2 使用wget下载,并解压
进入/usr/local目录,把安装包下载到此目录。
1 |
|
三、配置MySQL编译环境
使用源代码安装MySQL需要使用到CMake、make、gcc、bison、ncurses、openssl、rpcgen、libtirpc优先使用系统自带的,版本不符合要求再安装符合要求的版本即可。
参考地址:https://dev.mysql.com/doc/refman/5.7/en/source-installation-prerequisites.html
3.1 安装CMake
MySQL使用CMake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。
1 |
|
3.2 安装make3.75
mysql源代码是由C和C++语言编写,在linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本
1 |
|
**3.3 安装gcc4.4.6 **
GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本。
1 |
|
3.4 安装openssl 1.0.1
MySQL 5.7.28需要使用openssl编译。确保系统上安装了 OpenSSL 1.0.1 或更高版本。
1 |
|
3.5 安装bison2.1
Linux下C/C++语法分析器,需要2.1或更高版本。
1 |
|
3.6 安装ncurses
字符终端处理库
1 |
|
或者使用以下命令安装所有前置依赖
1 |
|
3.7 安装rpcgen
需要安装rpcsvc-proto-1.4或者以上版本。CentOS8默认的yum源下不提供rpcgen的安装包。所以需要到rpcgen的GitHub仓库下载。
1 |
|
3.8 安装libtirpc
1 |
|
四、编译安装MySQL
4.1 创建cmake.sh
在解压后的源码包路径下创建cmake.sh文件
1 |
|
cmake.sh文件内容具体内容如下;
1 |
|
重要参数说明:
参数值说明 CMake选项 安装根目录 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 数据存储目录 -DMYSQL_DATADIR=/usr/local/mysql/data 配置文件(my.cnf)目录 -DSYSCONFDIR=/etc UNIX socket文件 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock boost的路径 -DWITH_BOOST=/usr/local/mysql-5.7.28/boost/boost_1_59_0
4.2 创建目录
1 |
|
4.3 执行编译
1 |
|
- 若在预编译时出现依赖包不全的情况,可自行查阅资料安装依赖包,并重新预编译。重新预编译前,需要执行rm -f CMakeCache.txt删“CMakeCache.txt文件。”
五、配置MySQL
5.1 创建“mysql”用户
必须使用mysql用户,使用其它用户会报未知错误。
1 |
|
5.2 创建日志和pid文件
1 |
|
5.3 创建my.cnf文件
1 |
|
my.cnf文件详细内容如下:
1 |
|
5.4 执行mysql初始化脚本
进入安装路径,执行初始化配置脚本,生成初始的数据库和表。
1 |
|
参数说明:
–defaults-file 指定mysql配置文件
–initialize 产生随机密码,加上-insecure不产生。
–user 指定centos用户
5.5 启动MySQL
1 |
|
六、初始化MySQL
6.1 初始化MySQL
1 |
|
七、常见问题
7.1 问题一:启动MySQL服务提示“ERROR! The server quit without updating PID file”
解决方法:
1)首先检查my.cnf文件中的所有路径是否正确
2)MySQL安装及“data/log/run”路径未赋予用户及用户组正确权限,请使用以下命令赋权。
1
chown -R mysql:mysql /usr/local/mysql
3)查看是否已有mysql进程在运行,kill掉后再尝试。
1
2
3
4ps -ef | grep mysqld
#杀掉进程
kill -9 进程号
7.2 问题二:忘记MySQL的初始密码
问题描述:
- 在连接MySQL时,忘记初始密码。
解决方法:
修改在my.cnf配置文件中加上**skip-grant-tables ,**重启服务
输入mysql -uroot -p
显示输入密码,不输入直接按回车键进入mysql
7.3 问题三:执行初始化配置脚本报错
问题描述
在初始化配置脚本时报错
bin/mysqld: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
bin/mysqld: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
解决方法
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
1
rpm -qa|grep libaio
增加软连接
1
2ln -s /root/openssl-1.1.1d/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /root/openssl-1.1.1d/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
7.4 问题四:Cmake编译报错:
问题详情:
CMake Error at cmake/do_abi_check.cmake:86 (MESSAGE): ABI check found difference between
解决方法:
注释:/usr/local/mysql-5.7.28/CMakeLists.txt 文件中的 INCLUDE(cmake/abi_check.cmake)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!