Debian12安装MySQL8.4详细教程
系统环境
Debian12 x64 最小化安装
mysql-8.4.7-linux-glibc2.28-x86_64.tar.xz
本教程全程在 root 用户下操作,并且本教程安装仅仅是最基础的安装,不涉及任何优化设置,仅学习MySQL作用。
环境依赖
# 更新软件包缓存以及升级到最新软件包
apt-get update -y
apt-get upgrade -y
# 安装必要的依赖
apt-get install -y libaio1 libnuma1
libncurses6 libnuma1 sysv-rc-conf
安装过程
获取通用二进制安装包
# 这是MySQL官方下载地址,下载后使用XFTP上传至 root 用户家目录下
https://dev.mysql.com/downloads/mysql/
解压安装包
tar -xvf mysql-8.4.7-linux-glibc2.28-x86_64.tar.xz
mv mysql-8.4.7-linux-glibc2.28-x86_64 /usr/local/mysql-8.4.7
创建链接
cd /usr/local/
ln -s mysql-8.4.7 mysql
创建用户以及用户组,因为mysql用户不涉及登录,仅作为运行用户使用
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
添加环境变量
nano /etc/profile
# 在文件尾部加上如下代码后保存退出,一定要是最末尾
export PATH=$PATH:/usr/local/mysql/bin
# 刷新文件,使配置生效
source /etc/profile
配置一个简单的配置文件
nano /etc/my.cnf
输入并且保存
[mysqld]
bind-address=0.0.0.0
user=mysql
port=3306
数据目录初始化
cd /usr/local/mysql
# 该 secure_file_priv 系统变量将导入和导出操作限制到特定目录。创建一个目录,其位置可以指定为该变量的值
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
# 使用服务器初始化数据目录
bin/mysqld --initialize --user=mysql
记下初始化的密码
root@mysql8:/usr/local/mysql# bin/mysqld --initialize --user=mysql
2025-12-23T13:51:21.130509Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-12-23T13:51:21.131483Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.4.7/bin/mysqld (mysqld 8.4.7) initializing of server in progress as process 1607
2025-12-23T13:51:21.137690Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-12-23T13:51:21.297978Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-12-23T13:51:22.542240Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: w*VaQZPcA1Si
2025-12-23T13:51:23.959307Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
root@mysql8:/usr/local/mysql#
# 这一行的末尾
2025-12-23T13:51:22.542240Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: w*VaQZPcA1Si
使用 systemd 启动服务器
cd /usr/lib/systemd/system
touch mysqld.service
chmod 644 mysqld.service
nano mysqld.service
将以下配置信息添加到 mysqld.service文件中
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
# Have mysqld write its state to the systemd notify socket
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
配置开机自启
systemctl enable mysqld.service
# Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /lib/systemd/system/mysqld.service.
启动mysql
systemctl start mysqld
登录MySQL
mysql -u root -p
Enter password:
修改临时root密码和修改相应权限
# 更改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
# 使root能够远程登录
USE mysql;
UPDATE user set host = '%' where user = 'root';
# 刷新权限,使变更生效
FLUSH PRIVILEGES;

浙公网安备 33010602011771号