MySQL如何从5.5升级到8.0(使用命令行升级)
谁没事想重装数据库啊
学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运行就给我报错了,本来想去找替代的语法的,结果告诉我role是MySQL8新增的,MySQL8之前都没有。要不,升级一下吧。
其实第一次装MySQL的时候装的就是8.0版本的,后来跟着写一个小项目,MySQL版本是5.5的,写的时候很难受,就直接卸掉了8.0,重装了5.5,卸载重装的时候觉得甚是不合理,折腾了好久,当时就想再也不要装数据库了。
然后真香了,这次就想用简单一点的方式安装。
准备
万事先备份
我用的数据库编辑软件是sqlyog,点击菜单栏数据库–>备份/导出–>备份数据库,转存到SQL
再选择相应的数据库保存到你想要保存的路径就可以了
1、下载要安装的MySQL版本
这里是官网
https://downloads.mysql.com/archives/community/ 或者点击这里下载
随机选择一个8.0版本的压缩包,不建议选最新的
然后将安装包解压到你要安装的目录
我选择放在了上次安装的目录:D:\develop\MySQL
2、配置环境变量
新建系统变量
- 变量名:MYSQL_HOME
- 变量值:D:\develop\MySQL\mysql-8.0.20-winx64\bin
.
在Path中新建路径:%MYSQL_HOME%
3、添加配置文件
新建my.ini添加至mysql-8.0.20-winx64目录下
# my.ini [mysqld] #skip-grant-tables # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=D:\develop\MySQL # 设置mysql数据库的数据的存放目录 datadir=C:\ProgramData\MySQL/MySQL Server 8.0\Data\ # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
安装
1、卸载MySQL5.5
以管理员身份运行命令提示符
cd 到MySQL5.5的bin目录C:\Windows\system32>cd D:\develop\MySQL\MySQL Server 5.5\bin
命令行输入命令:mysqld --remove mysql5
可能会报错
打开任务管理器查看MySQL名称,原名称是mysql5
重新键入mysqld --remove mysql5
显示服务器正在运行,需停止服务器
方法一:直接在任务管理器的服务中找到mysql5,右键停止运行
方法二:控制面板输入net stop mysql5
再次输入mysqld --remove mysql5
2、安装新的MySQL8.0
cd到D:\develop\MySQL\mysql-8.0.20-winx64\bin目录下
安装mysqld -install
初始化mysqld --initialize --user=mysql --console
Data目录不可用,C:\ProgramData\MySQL\MySQL Server 8.0\Data\这个目录我只是参照原来的目录把5.5改成了8.0填进了my.ini文件,实际不存在,手动建C:\ProgramData\MySQL\MySQL Server 8.0\Data\文件夹后成功
产生的临时密码会用到,先保存下来
进入数据库mysql -u root -p
再输入上一步生成的临时密码
显示MySQL连接出错
尝试打开数据库连接net start mysql
服务器无法启动,可能是my.ini没有放在bin下
或是原来的Data没有删除,导致出错,我原来的C:\ProgramData\MySQL\MySQL Server 5.5文件夹没有删除,删除之后就可以连接上了
输入临时密码还是不能进数据库
改了一条指令mysqladmin -u root -pshutdown
再输入密码连接成功mysql -uroot -pJ(I%Ea2h;MDc
这时候已经是8.0版本了
修改密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
BY后面跟你自己的密码
退出数据库再此进入就可以用新的密码了
后续
备份导入
SQLyog直接打开已经自动连接上新的数据库了,只有几个基本的数据库
可以把备份sql文件导入还原
数据恢复成功
总结
到此这篇关于MySQL如何从5.5升级到8.0的文章就介绍到这了,更多相关MySQL5.5升级到8.0内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- mysql从5.7平滑升级到8.0.27的实现
- MySQL 8.0.26版本升级32版本查询数据为空的解决方案
- MySQL本地版本升级超详细教程(从5.5.20升到8.0.21)
- MySQL5.7升级MySQL8.0的完整卸载与安装及连接Navicat的步骤
- MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本问题
- 升级到mysql-connector-java8.0.27的注意事项
- MySQL8.0升级的踩坑历险记
- Docker版的MySQL5.7升级到MySQL8.0.13,数据迁移
- win2008下mysql8.0.11升级mysql8.0.17版本详细步骤
- MySQL8.0就地升级到MySQL8.4.0的方法
相关文章
mysql启动报错MySQL server PID file could not be found
这篇文章主要介绍了mysql启动报错MySQL server PID file could not be found,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-11-11面试被问select......for update会锁表还是锁行
select … for update 是我们常用的对行加锁的一种方式,那么select......for update会锁表还是锁行,本文就详细的来介绍一下,感兴趣的可以了解一下2021-11-11Last_Errno: 1062,Last_Error: Error Duplicate entry
Last_Errno: 1062,Last_Error: Error Duplicate entry ... for key PRIMARY2014-02-02MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解
这篇文章主要介绍了MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解,CONCAT 函数用于将两个字符串连接为一个字符串,本文通过实例代码详细讲解,需要的朋友可以参考下2023-02-02
最新评论