win10下载安装 MySQL8.0时遇到的问题解决ERROR2003(HY000)及ERROR1045(28000)

说明下系统是win10,mysql版本是8.0.14

下载完mysql后,无论如何也无法登录进去,花了小半天时间才弄明白如何成功登录。

首先遇到了以下问题
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

不输入密码的话会是这样
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
28000
非常普遍但是对我来说并不适用的解决方案一(大家可以试试!)
从网上查了一下解决方案,几乎全网的解决方案都是要修改my.ini,在mysqld下面添加skip-grant-tables,保存退出。
就像这样
my.ini
之后重启mysql服务:

在命令行输入net stop mysql 关闭mysql服务
stop

再输入net start mysql 开启mysql服务
成功启动
如果出现服务已经启动成功,那么恭喜你,你离成功近了一步。请继续往下看。

如果出现MySQL服务无法启动,服务没有报告任何错误,那就请继续往下看。

我尝试的大部分情况时出现服务已经启动成功,但是我发现我高兴得太早。

输入mysql -u root -p后,在需要密码时直接Enter就好了,因为之前加的那句话意思是跳过密码。

到此步如果成功进入了,就不用往下看了,恭喜你们。

然而我遇到了下一个ERROR:
2003

ERROR 2003 (HY000):Can’t connect to MySQL server on ‘localhost’ (10061)

从网上查了下,发现是因为服务没有开启。诶?我不是明明成功开启了吗?

于是我又打算关闭服务,重新开启。

然而得到了如下反馈。
关闭服务

尝试多次后,我发现每次都是服务开启一小会儿就自动关了。有时甚至直接开启不了。

好像这是MySQL 8.0 后版本的一种安全措施,所以之前的方法可能不适用了。

此时我打开了安装路径下的data文件夹
data

找到里面以err结尾的文件err
发现这里面有两行ERROR
error3
[ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS

[ERROR] [MY-010119] [Server] Aborting

[Warning] [MY-011311] [Server] Plugin mysqlx reported: 'All I/O interfaces are disabled, X Protocol won’t be accessible’

之后我尝试着把刚才在my.ini添加的skip-grant-tables注释掉在这里插入图片描述

再重启MySQL服务。

诶?一切又回到起点。
回到了
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

而我在输入密码时随手输入几个字母,也是这个报错。

我突然发现,是因为我密码错了。可是我是记住的initialize时的密码。
对,这种奇怪的密码。
在这里插入图片描述

此时网上的一种解决方案是,依旧点开.err后缀的那个文件,里面查找password,能看到密码。但是我的找不到这条。

后来我把initialize时的密码输入到文档里,直接复制粘贴到命令行,虽然此时命令行没有任何显示,但是输入回车,就成功了!

成功之后第一件事就是改掉这个奇怪的密码。
在这里插入图片描述
使用的是
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’

记住一定要加分号。

之后就用自己的密码登录就好啦!

附:获取initialize密码的方法。
仅适用于刚刚安装mysql的同学们!!!
打开你的安装路径,看里面有没有data文件夹。
有的话,把它删掉。

在这里插入图片描述
之后在命令行输入
mysqld --initialize --console

会出一大片东西,其中有一行有以下信息

2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ

后面那串字符就是你的initialize的密码。

到这儿就结束啦!
第一次在CSDN上写文章,废话有点多。
感觉兜兜转转又回到起点,不知道会不会有人和我遇到一样的问题。
如果这篇文章有帮助到你,可以留言哈。

附上我的参考网页

  1. MySQL下载安装步骤
  2. 从.err文件里找密码
  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
当在 MySQL 8.0 中遇到 "Error 1366 (HY000): Incorrect string value" 错误,这通常是由于插入或更新了包含无法正确映射到当前字符集的字符的数据所导致的。为了解决这个问题,可以尝试以下方法: 1. 修改字符集:将表的字符集修改为能够正确映射数据的字符集。例如,将表的字符集设置为 `utf8mb4`: ```sql ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 这将更改表的字符集,并确保能够正确存储数据。 2. 转码数据:对于包含无法正确映射的字符的数据,可以使用转码函数进行处理。例如,使用 `CONVERT` 函数将数据转换为正确的字符集: ```sql INSERT INTO your_table_name (column_name) VALUES (CONVERT('your_data' USING utf8mb4)); ``` 这将通过转码来插入数据,确保数据能够正确映射到字符集。 3. 修改连接字符集:在连接数据库之前,将连接的字符集设置为能够正确映射数据的字符集。例如,将连接字符集设置为 `utf8mb4`: ```sql SET NAMES 'utf8mb4'; ``` 这将确保后续的插入和查询操作都使用正确的字符集。 请注意,解决该错误可能涉及到多个方面的字符集设置,包括表的字符集、连接字符集等。确保所有涉及的字符集设置都正确,并且能够正确映射数据。另外,也要确保应用程序或客户端使用与数据库相同的字符集进行连接和操作,以避免出现不一致的字符集设置。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小略略略

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值