Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL5卸载到MySQL8安装

MySQL5卸载到MySQL8安装的不踩坑指南

作者:WL_Aurora

本文详细介绍了从MySQL 5.x升级到MySQL 8.0的全过程,包括彻底卸载旧版本、下载安装、配置MySQL 8.0、解决常见问题以及体验新特性,特别强调了认证方式选择的重要性,以避免与旧版客户端的兼容性问题,需要的朋友可以参考下

前言

MySQL 8.0 相比 MySQL 5.x 带来了巨大的性能提升和新特性(如窗口函数、CTE、JSON增强、默认utf8mb4等),但直接从 MySQL 5 升级到 8 存在诸多陷阱。本文将从彻底卸载旧版本开始,手把手带你完成 MySQL 8 的干净安装,确保不踩坑。

第一部分:彻底卸载 MySQL 5.x(关键步骤!)

警告:不彻底清理旧版本会导致 MySQL 8 安装失败或配置冲突!

1.1 Windows 系统卸载步骤

步骤 1:停止 MySQL 服务

Win + R,输入 services.msc 打开服务管理器,找到 MySQL 相关服务,右键选择停止

步骤 2:卸载 MySQL 程序

打开 控制面板 → 程序 → 程序和功能,找到所有 MySQL 相关程序(包括 MySQL Server、MySQL Workbench、MySQL Connector 等),逐一卸载。

步骤 3:删除残留文件(重点!)

卸载程序后,必须手动删除以下目录:

# 默认安装目录
C:\Program Files\MySQL
C:\Program Files (x86)\MySQL
​
# 数据目录(默认隐藏!)
C:\ProgramData\MySQL
​
# 用户数据目录
C:\Users\[你的用户名]\AppData\Roaming\MySQL

提示ProgramData 是隐藏文件夹,需要在文件资源管理器中开启"显示隐藏的项目"。

步骤 4:清理注册表(Windows 必须做)

Win + R,输入 regedit 打开注册表编辑器,删除以下路径:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL

步骤 5:删除环境变量

右键"此电脑" → 属性 → 高级系统设置 → 环境变量,在系统变量 Path 中删除所有包含 MySQL 的路径。

步骤 6:重启电脑

必须重启,确保所有 MySQL 进程和文件句柄释放干净。

1.2 Linux 系统卸载步骤

CentOS/RHEL 系统

# 1. 停止 MySQL 服务
sudo systemctl stop mysqld
​
# 2. 查看已安装的 MySQL 组件
rpm -qa | grep mysql
​
# 3. 卸载所有 MySQL 包
sudo yum remove mysql-* -y
​
# 4. 删除数据目录和配置文件
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf
sudo rm -rf /etc/my.cnf.d
sudo rm -rf /var/log/mysql
​
# 5. 删除用户和组(可选)
sudo userdel mysql
sudo groupdel mysql
​
# 6. 清理依赖
sudo yum autoremove -y

Ubuntu/Debian 系统

# 1. 停止服务
sudo systemctl stop mysql
​
# 2. 卸载 MySQL
sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
sudo apt-get autoremove -y
sudo apt-get autoclean
​
# 3. 删除残留文件
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo rm -rf /var/log/mysql
​
# 4. 检查是否清理彻底
dpkg -l | grep mysql
# 如果有残留,继续删除
sudo apt-get purge [包名]

第二部分:下载 MySQL 8.0

2.1 官方下载地址

访问 MySQL 官方下载页面:https://dev.mysql.com/downloads/mysql/

选择适合你系统的版本:

建议:Windows 用户选择 MySQL Installer 方式,图形化界面最不容易出错。

第三部分:安装 MySQL 8.0(Windows 图形化安装)

3.1 运行安装程序

双击下载的 mysql-installer-community-8.0.xx.msi,等待加载完成。

3.2 选择安装类型

推荐选择:

避坑:如果只需要数据库服务,选 Server only 即可,避免安装不必要的组件导致冲突。

3.3 检查依赖并下载

安装器会自动检查系统依赖(如 Visual C++ Redistributable),如果有缺失会自动下载安装。点击 Execute 开始下载组件。

3.4 执行安装

下载完成后,点击 Execute 安装 MySQL Server。

第四部分:配置 MySQL 8.0(核心避坑区)

4.1 类型与网络配置

4.2 认证方式选择(重要!)

这是 MySQL 8 最大的坑之一!

MySQL 8.0 默认使用 caching_sha2_password 认证插件,而 MySQL 5.x 使用 mysql_native_password。很多旧版客户端(如 Navicat 旧版、某些 PHP 版本)不支持新认证方式。

选项 1:Use Strong Password Encryption (RECOMMENDED)

选项 2:Use Legacy Authentication Method

建议:如果是全新项目,选 Strong Password Encryption;如果是迁移旧项目,选 Legacy Authentication 避免连接问题。

4.3 设置 Root 密码

设置一个强密码(至少 8 位,包含大小写字母、数字和特殊字符)。

避坑:务必记住这个密码!MySQL 8 默认密码策略较严格,简单密码可能无法通过。

4.4 Windows 服务配置

4.5 执行配置

点击 Execute 执行配置,等待所有步骤显示绿色对勾。

第五部分:验证安装

5.1 命令行验证

打开 CMD 或 PowerShell,输入:

mysql -u root -p

输入密码后,看到以下界面表示安装成功:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.40 MySQL Community Server - GPL
​
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql>

5.2 查看版本确认

在 MySQL 命令行中输入:

SELECT VERSION();

应返回类似 8.0.40 的版本号。

5.3 使用 MySQL Workbench 连接

打开 MySQL Workbench,点击 + 新建连接:

点击 Test Connection,输入密码,看到 Connection Successful 即表示成功。

第六部分:Linux 系统安装 MySQL 8.0

6.1 CentOS/RHEL 7/8

# 1. 添加 MySQL 官方 Yum 仓库
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
​
# 2. 安装 MySQL 服务器
sudo yum install mysql-community-server -y
​
# 3. 启动并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
​
# 4. 查看初始密码
sudo grep 'temporary password' /var/log/mysqld.log
# 输出类似:2026-05-01T06:25:00.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc9#defGh
​
# 5. 安全初始化(修改密码、删除匿名用户等)
sudo mysql_secure_installation

6.2 Ubuntu 20.04/22.04

# 1. 添加 MySQL APT 仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
# 在弹出的界面中选择 MySQL 8.0,然后 OK
# 2. 更新包列表
sudo apt-get update
# 3. 安装 MySQL
sudo apt-get install mysql-server -y
# 4. 查看初始密码
sudo grep 'temporary password' /var/log/mysql/error.log
# 5. 运行安全脚本
sudo mysql_secure_installation

6.3 Linux 修改 Root 密码

# 如果忘记初始密码,可以跳过授权表重置
sudo systemctl stop mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
# 在 MySQL 命令行中
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
EXIT;
# 重启 MySQL
sudo systemctl restart mysqld

第七部分:常见踩坑与解决方案

坑 1:安装时提示 "MySQL Server 已存在"

原因:旧版本未卸载干净,注册表或残留文件冲突。

解决

  1. 重新执行第一部分的所有清理步骤
  2. 使用 Geek Uninstaller 等工具强制卸载残留
  3. 重启电脑后重新安装

坑 2:连接时提示 "caching_sha2_password 认证失败"

原因:客户端不支持 MySQL 8 的默认认证插件。

解决

-- 修改用户认证方式为旧版
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

坑 3:安装后无法启动服务

原因:端口被占用或数据目录权限问题。

解决

# 检查端口占用(Linux)
sudo netstat -tlnp | grep 3306
# 检查数据目录权限(Linux)
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
# 查看错误日志
sudo tail -f /var/log/mysqld.log

坑 4:远程连接被拒绝

原因:MySQL 8 默认只允许本地连接。

解决

-- 创建远程访问用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
-- 修改 bind-address(Linux)
-- 编辑 /etc/my.cnf,在 [mysqld] 下添加:
bind-address = 0.0.0.0

坑 5:导入 MySQL 5 的 SQL 文件报错

原因:MySQL 8 默认字符集为 utf8mb4,且部分语法不兼容。

解决

-- 在导入前设置字符集
SET NAMES utf8mb4;
-- 如果报错 "Unknown collation: 'utf8mb4_0900_ai_ci'"
-- 在导出时指定兼容的字符集
mysqldump --default-character-set=utf8mb4 --compatible=mysql5.7 -u root -p 数据库名 > backup.sql

第八部分:MySQL 8 新特性速览

安装完成后,你可以体验以下 MySQL 8 的强大新特性:

特性说明
窗口函数ROW_NUMBER(), RANK(), LEAD(), LAG() 等,告别复杂子查询
CTE(公用表表达式)WITH 语句,让 SQL 更易读
JSON 增强JSON 表函数、聚合函数、改进的索引支持
默认 utf8mb4原生支持 emoji 和完整 Unicode
降序索引DESC 索引,优化排序查询
不可见索引标记索引为不可见,方便测试性能影响
角色管理更方便的权限组管理

总结

从 MySQL 5 迁移到 MySQL 8,彻底卸载旧版本是最关键的第一步。本文涵盖了:

  1. ✅ Windows/Linux 完整卸载流程(含注册表/残留文件清理)
  2. ✅ MySQL 8.0 官方安装器图形化安装步骤
  3. ✅ 认证方式选择避坑指南
  4. ✅ Linux 命令行安装与配置
  5. ✅ 5 大常见踩坑及解决方案

按照本文步骤操作,你可以顺利完成 MySQL 的升级迁移,享受 MySQL 8 带来的性能提升和新特性!

附:常用命令速查

# 启动/停止/重启 MySQL
net start MySQL80        # Windows
net stop MySQL80         # Windows
sudo systemctl start mysqld   # Linux
sudo systemctl stop mysqld    # Linux
# 登录 MySQL
mysql -u root -p
# 查看版本
mysql --version
SELECT VERSION();
# 查看当前用户
SELECT USER(), CURRENT_USER();
# 查看所有数据库
SHOW DATABASES;

以上就是MySQL5卸载到MySQL8安装的不踩坑指南的详细内容,更多关于MySQL5卸载到MySQL8安装的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文