麒麟arm系统安装mysql8.0
本文详细介绍了在ARM架构(aarch64)系统上安装MySQL 8.0的完整步骤。主要内容包括:1) 系统环境检查与依赖安装;2) 下载并解压ARM版MySQL二进制包;3) 创建mysql用户和授权目录;4) 配置环境变量和my.cnf文件;5) 设置systemd服务;6) 初始化数据库并修改root密码;7) 创建远程访问用户。特别针对ARM架构进行了优化配置,包含存储引擎、字符集、日志等
1.查看版本
cat /etc/os-release
2.环境准备
# 确认系统架构
uname -m
# 输出应为:aarch64
# 查看系统版本
cat /etc/kylin-release
# 查看 glibc 版本(MySQL 8.0 要求 glibc 2.17+)
ldd --version
# 安装必要依赖
yum install -y libaio numactl-libs ncurses-compat-libs tar xz wget
或者 apt update && apt install -y libaio1 libnuma1 libncurses5 tar xz-utils wget
3.下载 ARM 版本 MySQL
# 创建安装目录
mkdir -p /usr/local/src/mysql
cd /usr/local/src/mysql
# 下载 MySQL 8.0 ARM64 二进制包(推荐 8.0.42 或更新版本)
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz
# 或使用国内镜像加速
# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz
# 解压到 /usr/local/mysql
mkdir -p /usr/local/mysql
tar -xvf mysql-8.0.42-linux-glibc2.28-aarch64.tar.xz -C /usr/local/mysql --strip-components=1
4.创建用户和授权
# 创建 mysql 用户组和用户(如果已存在则跳过)
groupadd mysql 2>/dev/null || true
useradd -r -g mysql -s /bin/false mysql 2>/dev/null || true
# 创建必要目录
cd /usr/local/mysql
mkdir -p data log tmp run
# 授权目录
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
5.配置环境变量
# 编辑 /etc/profile
cat >> /etc/profile << 'EOF'
# MySQL Environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
EOF
# 立即生效
source /etc/profile
# 验证
which mysql
# 应输出:/usr/local/mysql/bin/mysql
6.创建配置文件 /etc/my.cnf
cat > /etc/my.cnf << 'EOF'
[mysqld]
# 基础配置
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
pid-file = /tmp/mysql.pid # 改用 /tmp 目录,避免权限问题
port = 3306
# 日志配置
log-error = /usr/local/mysql/log/error.log
# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 存储引擎
default-storage-engine = INNODB
# 修复:使用新的 redo log 配置(替代废弃参数)
# 删除旧的 innodb_log_file_size 和 innodb_log_files_in_group
innodb_redo_log_capacity = 134217728
# 修复:使用新的认证策略(替代废弃参数)
authentication_policy = mysql_native_password
# 嵌入式系统优化
innodb_buffer_pool_size = 128M
max_connections = 50
lower_case_table_names = 1
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
EOF
# 授权配置文件
chown mysql:mysql /etc/my.cnf
chmod 644 /etc/my.cnf
# 创建必要的目录并授权
mkdir -p /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql
chmod 755 /usr/local/mysql
# 特别确保数据目录权限正确
chown mysql:mysql /usr/local/mysql/data
chmod 750 /usr/local/mysql/data
7.配置系统服务启动
# 1. 先强制停止所有 MySQL 进程
pkill -9 mysqld
sleep 2
# 2. 清理残留
rm -f /tmp/mysql.pid /tmp/mysql.sock*
# 3. 重新创建 systemd 服务文件(关键修复)
cat > /etc/systemd/system/mysql.service << 'EOF'
[Unit]
Description=MySQL Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
# 使用 simple 类型,让 systemd 直接跟踪主进程
Type=simple
User=mysql
Group=mysql
# 不使用 --daemonize,让 MySQL 在前台运行,systemd 才能正确跟踪
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
# 重启策略
Restart=on-failure
RestartSec=3
# 资源限制(嵌入式系统建议)
LimitNOFILE=65535
EOF
# 4. 重新加载并启动
systemctl daemon-reload
systemctl start mysql
# 5. 检查状态
systemctl status mysql
8.初始化数据库
# 初始化(生成临时密码)
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
# 查看临时密码(保存好!)
grep 'temporary password' /usr/local/mysql/log/error.log
# 输出示例:2024-01-15T06:25:00.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc9#xyz!def
9.修改密码
# 登录 MySQL(使用初始化时的临时密码)
mysql -uroot -p
# 输入临时密码
# 修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword123!';
# 创建远程访问用户
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 或创建专用远程用户(更安全)
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)