使用Debian 13系统 + MySQL 9.6作为二进制安装
创建用户和组
useradd -s /sbin/nologin -r mysql
获取配置信息
获取glibc版本
ldd --version

获取CPU架构类型
arch

访问https://downloads.mysql.com/archives/community/获取适合你的二进制源码包
这个根据系统的glibc版本和主机的硬件架构类型下载,
注意:glibc版本大于等于2.28的使用glibc 2.28版的MySQL二进制包,glibc版本小于2.28的使用glibc2.17版的MySQL二进制包
因为我的是aarch64(ARM64架构),glibc版本大于2.28,我选择下载第一个

下载并解压MySQL
# 下载解压源码(此处地址是你上面适配于你的系统环境的二进制包)
wget -c -O- <你的地址> | tar -xJf - -C /usr/local
# 重命名(注意改文件名)
mv /usr/local/mysql-9.6.0-linux-glibc2.28-aarch64/ /usr/local/mysql
# 更改所有者、所属组
chown -R mysql:mysql /usr/local/mysql/

准备环境变量
echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
准备配置文件
cat > /etc/my.cnf <<-EOF
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
EOF
生成数据库文件,并提取root密码
# /data/mysql 会自动生成,但是/data/必须事先存在
# 创建MySQL数据目录
mkdir -p /data/mysql
# 更改所有者、所属组
chown -R mysql:mysql /data/mysql
# --initialize会生成一个初始化密码,--initialize-insecure生成空密码,两种方式任选一种
mysqld --initialize --user=mysql --datadir=/data/mysql
grep password /data/mysql/mysql.log
2025-04-22T14:36:39.157585Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: K39lgjhHlu:U
# "K39lgjhHlu:U"就是初始化密码
# 生成空密码的root用户
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql
如果出现以下错误
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
# 提示确少”libaio.so.1“文件
则需要安装依赖
# 红帽系列
yum install -y libaio
# Debian系列
apt install -y libaio1t64 libaio1 libnuma1
# 创建软连接(注意amd架构要改将aarch64改为x86_64)
ln -s /usr/lib/aarch64-linux-gnu/libaio.so.1t64 /usr/lib/aarch64-linux-gnu/libaio.so.1

准备服务脚本和启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cat > /lib/systemd/system/mysqld.service <<-EOF
[Unit]
Description=mysql database server
After=network.target
[Service]
Type=notify
PrivateNetwork=false
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SuccessExitStatus=5 6
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d//mysqld stop
ExecReload=/etc/init.d/mysqld reload
[Install]
WantedBy=multi-user.target
Alias=mysqld.service
EOF
systemctl daemon-reload && systemctl enable --now mysqld
修改口令
# 如果使用的是空密码,就不需要修改口令
awk '/temporary password/{print $NF}' /data/mysql/mysql.log
aupYu;uhJ9&y
mysqladmin -uroot -p'aupYu;uhJ9&y' password 123456
测试登录
root@Debian:~# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.6.0 MySQL Community Server - GPL
Copyright (c) 2000, 2026, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status
--------------
mysql Ver 9.6.0 for Linux on aarch64 (MySQL Community Server - GPL)
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 9.6.0 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /data/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 1 min 12 sec
Threads: 2 Questions: 6 Slow queries: 0 Opens: 120 Flush tables: 3 Open tables: 36 Queries per second avg: 0.083
--------------
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.013 sec)
mysql> exit
Bye
广告:
© 版权声明
THE END













暂无评论内容