说明下系统是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)
非常普遍但是对我来说并不适用的解决方案一(大家可以试试!)
从网上查了一下解决方案,几乎全网的解决方案都是要修改my.ini,在mysqld下面添加skip-grant-tables,保存退出。
就像这样
之后重启mysql服务:
在命令行输入net stop mysql 关闭mysql服务
再输入net start mysql 开启mysql服务
如果出现服务已经启动成功,那么恭喜你,你离成功近了一步。请继续往下看。
如果出现MySQL服务无法启动,服务没有报告任何错误,那就请继续往下看。
我尝试的大部分情况时出现服务已经启动成功,但是我发现我高兴得太早。
输入mysql -u root -p后,在需要密码时直接Enter就好了,因为之前加的那句话意思是跳过密码。
到此步如果成功进入了,就不用往下看了,恭喜你们。
ERROR 2003 (HY000):Can’t connect to MySQL server on ‘localhost’ (10061)
从网上查了下,发现是因为服务没有开启。诶?我不是明明成功开启了吗?
于是我又打算关闭服务,重新开启。
尝试多次后,我发现每次都是服务开启一小会儿就自动关了。有时甚至直接开启不了。
好像这是MySQL 8.0 后版本的一种安全措施,所以之前的方法可能不适用了。
找到里面以err结尾的文件
发现这里面有两行ERROR
[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上写文章,废话有点多。
感觉兜兜转转又回到起点,不知道会不会有人和我遇到一样的问题。
如果这篇文章有帮助到你,可以留言哈。
附上我的参考网页