重装Mysql8.0.16及遇到的1045、1251问题


前言

学javaee时搭环境用的老师推的集成软件去启动数据库,不知道进行了什么骚操作启动不了/密码也有问题了,所以卸载重装了数据库,写这篇文章来记录一下我遇到并成功解决的问题。
(1)安装好后用navicat连接数据库出现1045错误,可以直接跳到第二大点参考我的解决方法。
(2)重置密码后用navicat连接数据库出现1251错误,可以直接跳到第三大点参考我的解决方法。

一、重装Mysql

注:这次安装的版本是8.0.16(.zip),之前大二存档的安装包是.msi格式的,这次是在官网下的.zip的包,简单查了一下两者的区别如下:
在这里插入图片描述
1、官网下载包:https://dev.mysql.com/downloads/mysql/。
在这里插入图片描述
在这里插入图片描述
2、下载好后选择路径解压包(比如我放在了D:\mysql-8.0.16-winx64),新建一个my.ini的文件在解压包的根目录下(即D:\mysql-8.0.16-winx64)。

#my.ini文件基本配置内容如下所示。
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=d:\\software\mysql-8.0.16-winx64
# 设置mysql数据库的数据的存放目录
datadir=d:\\software\mysql-8.0.16-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

3、初始化Mysql,以管理员的身份运行cmd.exe,进入mysql的bin目录下,具体如图所示。
在这里插入图片描述
4、用navicat工具连接mysql,我看网上大家分享的一般到这步就可以成功连接了,但是我输入之前那个生成的随机密码之后弹出了1045错误(解决方法在第二大点),重置密码后又出现1251错误(解决方法在第三大点)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、1045错误

注:我第一次尝试网上的更改my.ini文件解决1045错误没有成功,后面这种方法重置密码成功了(在cmd.exe中能连接登录数据库,但navicat中又报错,所以朋友们谨慎参考)。
1、管理员身份运行cmd.exe,进入mysql的bin目录下,关闭mysql服务。
在这里插入图片描述
2、执行mysqld --skip–grant–tables --shared-memory,跳过密码验证。
在这里插入图片描述
3、再打开一个cmd.exe(管理员身份运行),同样进入mysql的bin目录下,输入mysql -u root -p命令,输入密码时回车就好,就成功无密码的进入mysql了。
在这里插入图片描述
4、将密码设置为空后退出,语句操作如下。

use mysql; 
#置空密码
update user set authentication_string='' where user='root';
#退出
quit;

5、关闭第一个cmd.exe窗口后,在第二个cmd.exe窗口中修改自己的登录密码,语句操作如下。

#关闭mysql服务
net stop mysql
#打开mysql服务
net start mysql
#进入mysql的bin目录下
cd\d D:\mysql-8.0.16-winx64\bin
#执行下面命令后要求输密码直接回车,上一步已经把密码置空了。
mysql -u root -p
#更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

6、修改完成后可以退出重新登录验证一下,成功登录即修改密码成功了。

quit
#输入密码登录
mysql -u root -p 

三、1251错误

注:重置密码后用navicat连接数据库出现的1251错误,解决方法如下。
1、管理员身份运行cmd.exe,登录进入mysql,登录语句可以参考上面的。
2、更改加密方式。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

3、更改密码。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

4、刷新。

mysql> FLUSH PRIVILEGES;

5、进行前面1-4的操作之后我的navicat就成功连接数据库了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值