Linux(Debian)安装、卸载 MySQL

一、前置准备

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.cnfbind-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
相关推荐
chlk1236 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑6 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件7 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒7 小时前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号17 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash21 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI1 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
于眠牧北1 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
十日十行2 天前
Linux和window共享文件夹
linux
木心月转码ing2 天前
WSL+Cpp开发环境配置
linux