MySQL的卸载与安装

​ 这两天想做一个项目,需要把MySQL的版本更换为8.0。在更换版本的过程中遇到了一些问题,花费了很多时间才找到解决方法。现在将这些问题和解决方法记录下来,以后要更换版本时有个参考,也希望能给需要更换MySQL版本的朋友们一点帮助。

MySQL的卸载

  • 建议卸载MySQL之前做好数据备份!!!

  • 停止MySQL服务。win10可以直接在搜索框中搜索“服务”,打开找到MySQL,停止服务在这里插入图片描述

  • 卸载MySQL。在控制面板中找到MySQL并卸载(控制面板里没有就不用管了)

  • 删除MySQL的安装目录。

  • 清理C:\Program Files (x86)\MySQL文件夹与C:\ProgramData\MySQL,ProgramData可能是隐藏的,通过勾选 查看-隐藏的项目框 打开在这里插入图片描述

  • 清理注册表。找到如下文件夹并删除。"win+R"并输入"regedit"进入注册表编辑器,win10也可直接搜索注册表编辑器打开。一些文件夹找不到就不管它了。

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL

  • 删除环境变量中的MySQL环境变量。

  • 管理员身份运行cmd -> sc delete mysql 删除MySQL服务

MySQL的安装

  • 到官网 https://www.mysql.com/ 下载mysql压缩包并解压到需要安装的位置

  • 配置环境变量,在Path中新建,并添加mysql安装位置的bin文件夹

    • 例如:E:\mysql\mysql-8.0.32-winx64\bin
  • 在安装目录新建 my.ini 文件(和bin文件同级),内容如下:

    [mysqld]
    basedir=E:\mysql\mysql-8.0.32-winx64
    datadir=E:\mysql\mysql-8.0.32-winx64\data
    port=3306
    skip-grant-tables

  • 管理员模式进入cmd,运行“ mysqld –install ”命令,出现出现 Service successfully installed 表示安装成功

  • 输入 mysqld --initialize-insecure --user=mysql 初始化数据文件

  • 输入net start mysql 重启mysql服务

  • 输入 mysql –u root –p 进入mysql管理,由于my.ini中的skip-grant-tables跳过权限管理,输入密码时随意,也可为空(命令复制可能出问题,建议手打)

    • 若出现 ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost:3306’ (10061),则输入mysqld --console,再管理员cmd重新mysqld --console(上一个窗口不要关闭)
      • 若第一个窗口崩溃,出现:“7ff64e9a8408 mysqld.exe!my_print_stacktrace()[stacktrace.cc:429]”等问题时,在my.ini中增加一句:shared-memory
  • 修改密码。输入更新语句时结尾需要加分号 ;

    update mysql.user set authentication_string=password(‘123456’) where user=‘root’ and Host=‘localhost’
    修改密码,其中123456为自定义密码---------mysql 8.0版本不可用

    MySQL 8.0 版本使用下列语句修改密码:

    update user set authentication_string=‘’ where user=‘root’;

    • 若出现“No database selected”,输入“use mysql”

    alter user ‘root’@‘localhost’ identified by ‘123456’;

    • 若出现“ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement”,则 flush privileges ;刷新权限后再重新设置密码
  • 输入 flush privileges 刷新权限

  • 删除my.ini中的“skip-grant-tables”(取消跳过权限管理)

  • 重启mysql即可(net stop mysql net start mysql),也可通过 服务-MySQL 点击重启。至此MySQL重装完成

Navicat连接不上重装的MySQL

可能1:MySQL 端口不是3306

  • 在mysql的命令行中输入: show global variables like ‘port’; 查看mysql端口,发现端口为0,而不是3306
  • 继续输入:show variables like “skip_networking”; 发现状态为ON
    • 原因为:在my.ini中设置跳过权限管理,导致skip_networking打开了,取消跳过即可。若是确实有跳过登录权限的需要,重启电脑,大概率解决问题!!

可能2:安装的MySQL版本为8.0,加密规则与mysql 5 版本不同,密码错误

  • 在mysql命令行中输入

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

// “123456” 为自定义密码

  • 若修改失败,则 “ select user,host from user; ” ,查看root对应的host。若不为“localhost”而是“ % ”,就将语句改为:

ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘password’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值