本文已参与「新人创作礼」活动,一起开启掘金创作之路。
升级步骤
-
备份旧数据库
mysqldump -uroot -p123456 --all-databases > all_db.sql -
停止服务
net stop Mysql # Mysql 替换为电脑中的服务名 # 等待出现 MySQL 服务已成功停止。 -
删除服务
在旧数据库
bin目录下打开命令行mysqld --remove Mysql # Mysql 替换为电脑中的服务名 # 等待出现 Service successfully removed. -
解压下载的
zip包 -
修改环境变量
将5.6版本环境变量修改为5.7版本
bin目录 -
新建
my.ini文件[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\Program Files\MySQL\mysql-5.7.31-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\Program Files\MySQL\mysql-5.7.31-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES -
初始化数据库
在5.7版本
bin目录中打开命令行mysqld --initialize --console -
安装服务
mysqld install -
启动服务
net start mysql # MySQL 服务已经启动成功。 -
修改
my.ini文件,跳过密码检验# 添加一行 skip-grant-tables -
重启服务
net stop mysql # MySQL 服务已成功停止。 net start mysql # MySQL 服务已经启动成功。 -
进入
mysql修改密码mysqluse mysql; update user set authentication_string=password("123456") where user="root"; # 123456 替换成你的新密码 flush privileges; quit; -
修改
my.ini文件,去掉跳过密码检验# 去掉这行 skip-grant-tables -
重启服务
net stop mysql # MySQL 服务已成功停止。 net start mysql # MySQL 服务已经启动成功。 -
使用新密码登录
mysql,开启远程登录mysql -uroot -p123456alter user 'root'@'localhost' identified by '123456'; # 123456 替换成你的新密码 use mysql; update user set host='%' where user='root'; flush privileges; quit; -
恢复数据
mysql -uroot -p123456 < all_db.sql # 漫长的等待开始了
升级后导出数据库报错
1577 - Cannot proceed because system tables used by Event Scheduler were found damaged at server start
解决:
mysqlcheck -uroot -p123456 --all-databases --check-upgrade --auto-repair
#123456为数据库密码
mysql_upgrade -uroot -p123456
后重启mysql服务
net stop mysql
net start mysql