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
相关推荐
云飞云共享云桌面1 小时前
如何降低非标自动化工厂的研发软件采购成本
运维·服务器·网络·数据库·性能优化·自动化
七七墨染1 小时前
DotMemory系列:5. 如何实现自动化抓取和应用自托管
运维·c#·自动化
IT小哥哥呀1 小时前
如何从 Windows SSH 进入 VirtualBox Ubuntu 虚拟机——密码认证(逐步指南)
linux·windows·ubuntu·ssh·教程·虚拟机
泰克教育官方账号1 小时前
泰涨知识 | 什么是自动化巡检?
运维·服务器·数据库
oneslide2 小时前
分享一个MySQL数据库备份恢复脚本--II
数据库·mysql
怀旧,2 小时前
【Linux系统编程】7. 进程的概念(上)
linux·运维·服务器
7***n752 小时前
API网关设计模式
linux·服务器·设计模式
q***23923 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
合作小小程序员小小店3 小时前
web网页开发,在线%图书管理%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·后端·mysql·jdk·intellij-idea