当前位置: 代码网 > it编程>数据库>Mysql > MySQL5卸载到MySQL8安装的不踩坑指南

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

2026年05月08日 Mysql 我要评论
前言mysql 8.0 相比 mysql 5.x 带来了巨大的性能提升和新特性(如窗口函数、cte、json增强、默认utf8mb4等),但直接从 mysql 5 升级到 8 存在诸多陷阱。本文将从彻

前言

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-community-8.0.xx.msi(在线安装器,约 20mb)
  • linux: 使用官方 yum/apt 仓库或下载 rpm/deb 包

建议:windows 用户选择 mysql installer 方式,图形化界面最不容易出错。

第三部分:安装 mysql 8.0(windows 图形化安装)

3.1 运行安装程序

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

3.2 选择安装类型

推荐选择:

  • server only:仅安装数据库服务器(推荐,最小化安装)
  • full:安装所有组件(包括 workbench、router 等,约 1gb)
  • custom:自定义选择组件

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

3.3 检查依赖并下载

安装器会自动检查系统依赖(如 visual c++ redistributable),如果有缺失会自动下载安装。点击 execute 开始下载组件。

3.4 执行安装

下载完成后,点击 execute 安装 mysql server。

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

4.1 类型与网络配置

  • config type: 选择 development computer(开发机器)或 server machine(服务器)
  • port: 默认 3306,如果之前安装过其他数据库占用,可改为 3307
  • open windows firewall ports: ✅ 勾选,允许远程连接

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

这是 mysql 8 最大的坑之一!

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

选项 1:use strong password encryption (recommended)

  • 使用新的 caching_sha2_password
  • 安全性更高,但要求客户端支持
  • 如果你使用 mysql workbench 8+、navicat 15+、dbeaver 等新版工具,选这个

选项 2:use legacy authentication method

  • 使用旧的 mysql_native_password
  • 兼容性更好,适合旧项目迁移
  • 如果你不确定客户端版本,或项目使用旧版 php/java 驱动,选这个

建议:如果是全新项目,选 strong password encryption;如果是迁移旧项目,选 legacy authentication 避免连接问题。

4.3 设置 root 密码

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

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

4.4 windows 服务配置

  • windows service name: 默认 mysql80,建议保持默认
  • start the mysql server at system startup: ✅ 勾选开机自启
  • run windows service as: 选择 standard system account

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,点击 + 新建连接:

  • connection name: localhost
  • hostname: 127.0.0.1
  • port: 3306
  • username: root

点击 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安装的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com