目录

  1. 1、官方文档:
  2. 2、更改环境变量
  3. 3、配置 my.ini 文件(原my-default.ini配置文件)
  4. 4、第三步到第四步
    1. 4.1、mysqld install
    2. 4.2、别忘记启动mysql

1、官方文档:

https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html#windows-upgrading-zip-distribution

下载、安装的过程,照着官网文档一步步来就行,第三步到第四步要自己整一下

替换原来的mysql文件夹,并更改文件夹名字(主要是更改版本号,以免混淆)

下面是需要更改的地方

2、更改环境变量

path中有两个地方需要更改,一个是 mysql文件夹,一个是mysql文件夹下的bin目录。其他情况请自行变化。

环境变量

这里是因为更改了文件夹的名字,所以需要更新一下

3、配置 my.ini 文件(原my-default.ini配置文件)

my.ini 文件在mysql文件夹下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir= D:\MySQL\MySQL8.0
# 设置mysql数据库的数据的存放目录
datadir= D:\MySQL\MySQL8.0\data
# 允许最大连接数
max_connections= 20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine= INNODB

这里也是有两个地方需要改:

  1. mysql的安装目录,照着改就行
  2. 数据存放目录,由于是替换原mysql文件夹,所以其中的数据还会保留data还会存在。

4、第三步到第四步

在官方文档中,第4步完成就成功了(8.0.16以上版本),可能第四步不会成功,下面是我遇到的问题及解决

官方文档

4.1、mysqld install

mysqld install一下发现是之前的版本

1
2
3
D:\MySQL\MySQL8.0\bin>mysqld install
The service already exists!
The current server installed: D:\mysql-5.7.24-winx64\bin\mysqld MySQL
1
2
3
4
5
6
7
8
9
D:\MySQL\MySQL8.0\bin>sc query mysql

SERVICE_NAME: mysql
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0

删除原来设置的mysql:

1
2
D:\MySQL\MySQL8.0\bin>sc delete mysql
[SC] DeleteService 成功

重新安装:

1
2
D:\MySQL\MySQL8.0\bin>mysqld install
Service successfully installed.

4.2、别忘记启动mysql

到了这步你也许发现直接
NET START mysql
是会报错的

这可能是因为没有启动mysql
启动

搜索”计算机管理”,找到”服务”,看是否是这里有问题,改为自动即可。

此时就能成功登录了,输入以前设置的用户名密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
D:\MySQL\MySQL8.0\bin>mysql -u root -p
Enter password: *********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>