MySQL 5.X升级到8.X

1.备份数据

打开SQLyog,备份数据库为sql文件,以防升级过程中造成数据丢失。

2.卸载MySQL 5.X

2.1 停止服务

按win键输入cmd,右键选择以管理员身份打开,输入 net stop mysql 停止服务。

2.2 删除文件

找到MySQL的安装路径,删除文件夹;再找到C盘的隐藏文件夹:programDate,找到里面的MySQL文件夹删除。

2.3 删除注册表残留

win+R 输入 regedit 打开注册表,在注册表中找到MySQL目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL目录
再删除 以下文件夹(下面的文件夹有的人有,有的人没有,有就删除)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL的文件夹
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\EventLog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Services\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl002\Services\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL

2.4 删除mysql服务

cmd中输入 sc delete mysql
至此,MySQL 5.X卸载完成。

3.安装MySQL 8.X

3.1 下载

MySQL下载链接:MySQL下载,选择合适版本下载,然后解压到本地。

3.2 配置环境




添加本地MySQL文件夹下的bin文件夹到path变量。

打开本地mysql文件夹,新建 mysql.ini 配置文件。MySQL 5.7 以上版本默认没有data属性文件,不要手动创建。
mysql.ini为配置文件
data文件夹用于存放数据库数据

注意配置文件mysql.ini需要修改两个部分 1数据库安装目录2数据库的数据的存放目录需要修改为自己的路径

[mysql]

设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]

设置3306端口
port = 3306

设置mysql的安装目录 *** 需要修改
basedir=D:\software\mysql-8.0.26-winx64

设置mysql数据库的数据的存放目录 *** 需要修改
datadir=D:\software\mysql-8.0.26-winx64\data

允许最大连接数
max_connections=200

服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

3.3 安装MySQL

配置完成后,管理员身份打开cmd,执行 mysqld --initialize-insecure
执行完成后没有任何输出信息,查看MySQL文件夹会发现多出了data文件夹。
紧接着执行 mysqld install 命令。

3.4 启动服务

还是cmd,输入 net start mysql

4.安装后的一些配置

初次安装之后,需要修改密码,cmd输入 mysql -u root -p,之后要求输入密码,初次登陆没有密码,直接按回车。

之后修改密码,依然是cmd,执行 mysqladmin -u root -p password,按回车跳过输入密码阶段,之后输入两次新密码,按回车,密码修改完成。

注意事项

当我们使用可视化工具去连接MySQL 8.X的时候,可能会报错,这里使用SQLyog连接时,报了1251的错误码,这是由于MySQL不同版本之间不同的加密规则造成的,我们只需要更改即可。
错误详情:

1251 client does not support authentication protocol requested by server;consider upgrading Mysql client

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

解决办法:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;  ##修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ##更新一下用户的密码 password 为自己想要重新设置的密码

FLUSH PRIVILEGES; ##刷新权限

本篇博客参考以下文章 手把手系列——MySQL5.x版本升级到MySQL8.x

posted @ 2023-01-15 16:07  喵酱的花椒  阅读(856)  评论(0)    收藏  举报