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;

最后编辑时间:2025年12月23日21:37:52

posted @ 2022-07-20 17:20  tothk  阅读(2067)  评论(0)    收藏  举报