Debian 二进制安装 MySQL 9.6

Debian 二进制安装 MySQL 9.6

使用Debian 13系统 + MySQL 9.6作为二进制安装

创建用户和组

useradd -s /sbin/nologin -r mysql

获取配置信息

获取glibc版本

ldd --version

20260510220835280-未命名

获取CPU架构类型

arch

20260510221012282-未命名2

 

访问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,我选择下载第一个

20260510221103218-未命名3

下载并解压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/

20260510221141910-未命名4

准备环境变量

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

20260510221231879-未命名5

 

准备服务脚本和启动

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
喜欢就支持一下吧
点赞10打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容