前提
- 注意对旧版本中 MySQL 的数据进行备份操作
安装包下载
本次使用 zip 包的方式进行升级, 下载 zip 包, 解压到指定目录(后面${MYSQL_HOME}环境变量需要修改为此目录路径)
新旧版本安装路径说明
- 旧版本安装路径: ${MYSQL_HOME}=C:\Program Files\mysql-5.7.22-winx64
- 新版本安装路径: ${MYSQL_HOME}=C:\soft\mysql-8.0.18-winx64
旧版本卸载操作
# 进入旧版本的 mysql 安装目录的 bin 目录下
cd C:\Program Files\mysql-5.7.22-winx64
# 停止 mysql 服务
net stop mysql
# 移除 mysql 服务
mysqld --remove mysql
新版本安装操作
# 修改环境变量 Path 中 MySQL 的指向(MYSQL_HOME 环境变量指向新版本的安装目录)
PATH=${MYSQL_HOME}/bin
# 在新版本的 mysql 安装目录(${MYSQL_HOME})下新建文件(内容见<my.ini 文件内容>)
touch my.ini
# 进入新版本的mysql 安装目录(如果是 zip 包安装则进入 zip 包的解压目录)
cd C:\\soft\mysql-8.0.18-winx64\bin
# 安装 mysql 服务
mysqld --install mysql
# 初始化 mysql 信息, 会在 mysql 安装目录下生成 data 目录(data文件夹会自动生成)
# 注意会打印出root@localhost用户的密码(Mysql 5.8: root@localhost is created with an empty password)
mysqld --initialize-insecure --console
# 启动 mysql 服务
net start mysql
# 进行 'root'@'localhost' 用户的密码修改
mysql -u root -p
select host,user,plugin,authentication_string from mysql.user;
# 设置 root@localhost 用户的密码
set password = 'root';
flush privileges;
# 创建新用户 'root'@'%' 并进行授权
create user 'root'@'%' identified by '123456789';
grant all privileges on *.to 'root'@'%';
my.ini 文件内容
[mysqld]
# 绑定IPv4
#bind-address = 0.0.0.0
# 设置mysql的安装目录,即你解压缩安装包的位置
basedir = "C:\\soft\mysql-8.0.18-winx64"
# 设置mysql数据库的数据的存放目录
datadir = "C:\\soft\mysql-8.0.18-winx64\data"
# 设置端口号
port = 3306
# 允许最大连接数
max_connections = 200
# 设置字符集为utf8
# default-character-set = utf8
character-set-server = utf8
# loose-default-character-set = utf8
# 开启查询缓存
explicit_defaults_for_timestamp = true
# windows下区分表名大小写(0:不区分,2区分(5.7版本))
# lower_case_table_names=2
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
log-bin=C:\\log\mysql-bin
# binglog-format=Row
server-id=1
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
# 设置客户端字符集
port=3306
default-character-set = utf8
# character-set-client = utf8
# loose-default-character-set = utf8
[WinMySQLadmin]
Server = "C:\\soft\mysql-8.0.18-winx64\bin\mysqld.exe"
注意修改 basedir & datadir & log-bin & Server 属性的值
错误排查
- Navicat 连接 Mysql 服务报错: 1251 client does not support …
# 更改加密方式
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 更新用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
# 刷新权限
FLUSH PRIVILEGES;