MySQL从5.5升级到8.0(使用命令行升级)

谁没事想重装数据库啊

学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运行就给我报错了,本来想去找替代的语法的,结果告诉我role是MySQL8新增的,MySQL8之前都没有。要不,升级一下吧。 其实第一次装MySQL的时候装的就是8.0版本的,后来跟着写一个小项目,MySQL版本是5.5的,写的时候很难受,就直接卸掉了8.0,重装了5.5,卸载重装的时候觉得甚是不合理,折腾了好久,当时就想再也不要装数据库了。 然后真香了,这次就想用简单一点的方式安装。

准备

万事先备份

我用的数据库编辑软件是sqlyog,点击菜单栏数据库–>备份/导出–>备份数据库,转存到SQL 再选择相应的数据库保存到你想要保存的路径就可以了

1、下载要安装的MySQL版本

这里是官网

随机选择一个8.0版本的压缩包,不建议选最新的 然后将安装包解压到你要安装的目录 我选择放在了上次安装的目录:D:developMySQL

2、配置环境变量

  1. 新建系统变量 变量名:MYSQL_HOME 变量值:D:developMySQLmysql-8.0.20-winx64in .
  2. 在Path中新建路径:%MYSQL_HOME%

3、添加配置文件

新建my.ini添加至mysql-8.0.20-winx64目录下

# my.ini
[mysqld]
#skip-grant-tables
 
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:developMySQL
# 设置mysql数据库的数据的存放目录
datadir=C:ProgramDataMySQL/MySQL Server 8.0Data
# 允许最大连接数
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

  1. 以管理员身份运行命令提示符
  2. cd 到MySQL5.5的bin目录 C:Windowssystem32>cd D:developMySQLMySQL Server 5.5in
  3. 命令行输入命令: mysqld --remove mysql5可能会报错 打开任务管理器查看MySQL名称,原名称是mysql5 重新键入 mysqld --remove mysql5 显示服务器正在运行,需停止服务器 方法一:直接在任务管理器的服务中找到mysql5,右键停止运行 方法二:控制面板输入net stop mysql5 再次输入mysqld --remove mysql5

2、安装新的MySQL8.0

cd到D:developMySQLmysql-8.0.20-winx64in目录下
  1. 安装 mysqld -install
  2. 初始化 mysqld --initialize --user=mysql --console Data目录不可用,C:ProgramDataMySQLMySQL Server 8.0Data这个目录我只是参照原来的目录把5.5改成了8.0填进了my.ini文件,实际不存在,手动建C:ProgramDataMySQLMySQL Server 8.0Data文件夹后成功 产生的临时密码会用到,先保存下来
  3. 进入数据库 mysql -u root -p 再输入上一步生成的临时密码 显示MySQL连接出错 尝试打开数据库连接net start mysql 服务器无法启动,可能是my.ini没有放在bin下 或是原来的Data没有删除,导致出错,我原来的C:ProgramDataMySQLMySQL Server 5.5文件夹没有删除,删除之后就可以连接上了 输入临时密码还是不能进数据库 改了一条指令 mysqladmin -u root -pshutdown 再输入密码连接成功 mysql -uroot -pJ(I%Ea2h;MDc 这时候已经是8.0版本了
  4. 修改密码 ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 123456; BY后面跟你自己的密码 退出数据库再此进入就可以用新的密码了

后续

备份导入

SQLyog直接打开已经自动连接上新的数据库了,只有几个基本的数据库 可以把备份sql文件导入还原 数据恢复成功

经验分享 程序员 微信小程序 职场和发展