一、环境准备与系统更新
开始操作之前,建议先将系统环境配置妥当。首先更新包索引,确保所有依赖保持最新——虽然看似基础,但能有效避免后续可能出现的兼容性问题。

sudo apt update && sudo apt upgrade -y
接着,安装必要的依赖工具,以便后续能够添加HTTPS仓库并导入GPG密钥。
sudo apt install -y wget gnupg lsb-release
二、添加MySQL官方APT仓库
首先需要导入MySQL官方的GPG密钥,用于验证软件包的完整性。关键步骤在于:从MySQL官方服务器下载「MySQL仓库配置包」——这是后续通过apt命令安装MySQL 8.0的前提条件。
为何必须手动添加仓库?因为Debian系统默认的软件源中并未包含MySQL 8.0官方包。Debian官方默认提供的是MySQL的分支版本「MariaDB」。如果直接执行sudo apt install mysql-server,实际安装的是MariaDB而非MySQL。因此,必须手动添加「MySQL官方的APT仓库」,才能让apt识别到MySQL 8.0的安装包。
如果下面的命令下载失败,可前往MySQL官网获取最新的mysql-apt-config包地址,或者点击此处直接下载。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
然后安装仓库配置包。安装过程中会弹出交互界面,默认选择MySQL 8.0即可,直接回车确认。
sudo dpkg -i mysql-apt-config_0.8.36-1_all.deb
最后,再次更新包索引,使系统加载MySQL仓库的包信息。
sudo apt update
三、安装MySQL服务
安装MySQL服务器核心组件。安装过程中会弹出设置root密码的交互界面,请设置一个强密码(建议包含字母、数字和特殊字符)并确认。注意,MySQL 8.0要求密码强度至少为中等。
sudo apt install -y mysql-server
安装完成后,验证服务是否正常运行:
sudo systemctl status mysql
如果服务未自动启动,可手动启动:
sudo systemctl start mysql
最后设置开机自启动:
sudo systemctl enable mysql
四、安全初始化配置
MySQL提供了一个安全脚本mysql_secure_installation,用于删除默认匿名用户、禁止root远程登录、删除测试数据库等。虽然不是强制步骤,但强烈建议执行一遍以提升安全性。
sudo mysql_secure_installation
按照提示逐步操作:
- 输入第一步设置的
root密码; - 询问是否启用
VALIDATE PASSWORD COMPONENT(密码强度验证):建议选择Y(是),后续按提示选择密码强度等级(0 = 低,1 = 中,2 = 高); - 如果之前已设置强密码,直接回车确认(无需修改);
- 依次回答
Y(确认删除匿名用户、禁止root远程登录、删除test数据库、刷新权限表)。
配置完成后,登录MySQL测试:
sudo mysql -u root -p
输入第一步设置的root密码,成功登录后会显示mysql>提示符,说明安装已全部正常。
五、其他可选配置
允许远程登录
如果需要从其他机器连接此数据库,需要修改root的认证方式为mysql_native_password(兼容旧客户端),并授权远程访问。
-- 切换到 mysql 系统数据库 USE mysql; -- 修改 root 认证方式和允许远程访问(% 表示所有IP,可改为具体IP如192.168.1.100) UPDATE user SET host='%' WHERE user ='root'; -- 刷新权限 FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES;
创建新用户
通常不建议直接使用root账户,建议创建一个专用用户。
-- 创建用户(例如: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(仅限本地)。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释或修改bind-address = 0.0.0.0,保存后重启MySQL。
sudo systemctl restart mysql
七、卸载MySQL
# 停止服务 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
总结
从环境准备到仓库添加,再到安装配置和常见问题排查,整个流程走下来,MySQL 8.0 在Debian系统上的部署就完成了。关键在于理解Debian默认仓库不包含MySQL官方包,需手动添加仓库;以及安装后一定要执行安全脚本,避免留下安全隐患。远程连接时注意bind-address和认证方式。如果需要彻底翻新,卸载步骤也已一并提供。希望这份指南能帮你顺利部署,少走弯路。
