一、前置准备
1.更新系统包索引,确保依赖最新
bash
sudo apt update && sudo apt upgrade -y
2.安装必要依赖(用于添加 HTTPS 仓库和导入 GPG 密钥)
bash
sudo apt install -y wget gnupg lsb-release
二、添加MySQL官方仓库
1.导入 MySQL 官方 GPG 密钥(验证包完整性)
这一步作用是 从 MySQL 官方服务器下载「MySQL 仓库配置包」 ,这个包是后续能通过 apt 命令安装 MySQL 8.0 的关键前提。
Debian 系统的默认软件源(官方 apt 仓库)中,没有 MySQL 8.0 的官方包------Debian 官方默认提供的是 MySQL 的分支版本「MariaDB」。
如果直接执行 sudo apt install mysql-server,安装的会是 MariaDB 而非 MySQL。因此必须先手动添加「MySQL 官方的 apt 仓库」,才能让 apt 识别到 MySQL 8.0 的安装包
如果命令无法下载,可以到MySQL官网获取最新的mysql-apt-config 包地址
bash
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
2.安装仓库配置包(会弹出交互界面,默认选择 MySQL 8.0 即可,直接回车确认)
bash
sudo dpkg -i mysql-apt-config_0.8.36-1_all.deb
3.再次更新包索引,加载 MySQL 仓库的包信息
bash
sudo apt update
三、安装MySQL服务
1.安装 MySQL 服务器核心包
安装过程中会弹出 设置 root 密码 的交互界面,输入强密码(字母 + 数字 + 特殊字符)并确认(注意:MySQL 8.0 要求密码强度不低于中等)
bash
sudo apt install -y mysql-server
2.验证安装是否成功
bash
sudo systemctl status mysql
3.如果未自动启动,可以手动启动
bash
sudo systemctl start mysql
4.设置开机自启动
bash
sudo systemctl enable mysql
四、初始化配置
1.运行安全脚本(非必须,按需要执行)
MySQL 提供了 mysql_secure_installation 脚本,用于删除默认匿名用户、禁止 root 远程登录、删除测试数据库等
bash
sudo mysql_secure_installation
按照提示逐步操作:
- 输入第一步设置的
root密码; - 询问是否启用
VALIDATE PASSWORD COMPONENT(密码强度验证):建议选Y(是),后续按提示选择密码强度等级(0 = 低,1 = 中,2 = 高); - 若已设置强密码,可直接回车确认(无需修改);
- 依次回答
Y(确认删除匿名用户、禁止 root 远程登录、删除 test 数据库、刷新权限表)。
2.登录MySQL
bash
sudo mysql -u root -p
输入第一步设置的 root 密码,成功登录后会显示 mysql> 提示符,说明安装正常
五、其它的一些可选配置
1.允许远程登录
修改 root 认证方式为 mysql_native_password(兼容旧客户端),并授权远程访问
bash
-- 切换到 mysql 系统数据库
USE mysql;
-- 修改 root 认证方式和允许远程访问(% 表示所有IP,可改为具体IP如192.168.1.100)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的root密码';
-- 刷新权限
FLUSH PRIVILEGES;
2.创建新用户
bash
-- 创建用户(例如:my_user,允许本地访问 localhost,密码:my_password)
CREATE USER 'my_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_password';
-- 授权用户操作数据库(所有权限)
GRANT ALL PRIVILEGES ON my_db.* TO 'my_user'@'localhost';
-- 若需远程访问,创建用户时改为 '%':
-- CREATE USER 'my_user'@'%' IDENTIFIED WITH mysql_native_password BY 'my_password';
-- GRANT ALL PRIVILEGES ON my_db.* TO 'my_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
六、常见问题排查
1.安装时未弹出密码设置界面
执行 sudo dpkg-reconfigure mysql-server 重新配置密码。
2.登录报错 Access denied for user 'root'@'localhost'
auth_socket 认证方式不允许直接密码登录,需用 sudo mysql -u root(无需 -p)登录,再修改认证方式(参考步骤五.1)
3.远程连接失败
检查 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf 中 bind-address 是否为 0.0.0.0(允许所有 IP),默认是 127.0.0.1(仅本地)
bash
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释或修改 bind-address = 0.0.0.0,保存后重启 MySQL
bash
sudo systemctl restart mysql
七、卸载MySQL
bash
# 停止服务
sudo systemctl stop mysql
# 卸载核心包
sudo apt purge -y mysql-server mysql-client mysql-common
# 删除残留文件和目录
sudo rm -rf /var/lib/mysql /etc/mysql
# 清理依赖
sudo apt autoremove -y && sudo apt autoclean