登陆失败--Mysql8.0免安装版本数据库配置问题修改密码--重建USER账户
版权声明:本⽂为博主原创⽂章,遵循版权协议,转载请附上原⽂出处链接和本声明。
本⽂链接:
在此先感谢论坛博客的各位⼤佬,因为实在是查了太多资料,连我⾃⼰究竟是在哪⾥拼拼凑凑出解决办法的过程都差不多快模糊了,第⼀次安装数据库,花了3天终于搞定了,博主的很多教程都是旧版本的指令,根本⽆法运⾏。想了想还是得写⼀写留个纪念。
**
⼀、关闭SQL
任务管理器->到->结束⼈物进程
cmd命令⾏输⼊:net stop mysql; 服务停⽌中 -> 服务已停⽌
⼆、打开cmd界⾯,定位到mysql安装⽬录的bin⽂件下
输⼊ cd D:\MySQL\mysql-8.0.15-winx64\bin
(注:地址是你⾃⼰的安装⽬录地址)
三、启动MySQL服务的时候跳过权限表认证
很多博主是输⼊“mysqld --skip-grant-tables ”,但是最新的数据库版本这个命令已失效,会发现命令窗⼝仍然跳出下⼀⾏待输⼊指令。
应该输⼊:mysqld --console --skip-grant-tables --shared-memory
⽣成界⾯如下,此时dos窗⼝不能运⾏,再另开⼀个cmd窗⼝操作第四步。
四、直接输⼊’mysql’免密登⼊数据库
输⼊ mysql,如果成功,显⽰如下界⾯,下⼀⾏的提⽰命令为mysql
五、输⼊’ use mysql '连接权限数据库
六、输⼊’ show tables; '(分号注意)
显⽰图⽚如下,最下⾯有⼀个user,⾥⾯就有我们想要的信息。
七、** 输⼊:select user,host, authentication_string from user; 查看user信息
打*是因为这⾥容易出错,之前我复制黏贴输⼊的是select user,host,password from user;然后提⽰错误ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
然后我把password给删了换成authentication_string,就⾏了。
看到user⾥有⼀个’root’,host⾥⼀⼀对应。
⼋、修改密码
> 输⼊: update mysql.user set authentication_string=‘123’ where user=‘root’;
> 如果上⾯那个⽤不了,就试试这个: update mysql.user set authentication_string=(‘123’) where user=‘root’ and Host =‘localhost’;
离成功只差⼀步!然后就在这⼀步上死了⽆数次(吐⾎)
很多博主的修改⽅式是输⼊:update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
然后就会⽆数次报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(‘123’) where user=‘root’ and host=‘localhost’’ at line 1
原因第七步其实已经讲的很清楚了,是因为数据库8.0已经没有’password’这个字段了,password字段改成了
authentication_string。所以需要将password改成authentication_string。
我已经疯了,⽼师叫我们安装SQLSERVER,我卸载了mysql,结果⼜有作业要⽤到,我⼜重新下载
回来了,然后⼀模⼀样的错误,幸好我之前写了这个博客,结果这⼀步⼜错了,怎么肥事,经过百折不屈的百度我⼜把这玩意安回来了。
九、刷新权限。输⼊:flush privileges;(必做)
免安装版的mysql下载最后quit数据库,还会很萌地跟你say bye。
⾛了这么多步终于把密码改过来了,怕忘记赶紧把步骤写出来。
愉悦地开启数据库之旅吧。
⼗、如果mysql使⽤了正确的密码还是登陆不上去
提⽰:”ACCESS DENIED FOR USER ‘ROOT’@’LOCALHOST’ (USING PASSWORD: YES)”
我踏马快疯了。
重新按上⾯的⽅法跳过认证直接登陆mysql
然后show了⼀下user信息:(确实是这个密码啊??)
好吧,仔细看,上⾯的都是加密过得,⽽我们⾃⼰设置的密码是那样格格不⼊,我查了很多⽅式,⼤多都是说⽤**grant all privileges on . to ‘root’@’localhost’ identified by ‘mypassword’ with grant option;**给我们的root赋予权限,但是我⼀打上去,就开始疯狂报错:grant all privileges on . to ‘root’@’localhost’ identified by ‘mypassword’ with grant option;
我:
看这篇⽂章的读者可以先试⼀试这个代码,也许你们可以成功,然鹅我好像怎么都没办法,接下来⼜开始百度。
重新创建⼀个新的user账户,这样输⼊密码的时候系统会⾃动给你加密,这样就可以以新的账户登陆了
#创建账户
create user ‘⽤户名’@‘localhost’ identified by ‘password’;
如 create user fdd identified by '123456'; 如果提⽰:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
那就:flush privileges 刷新⼀下
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
接下来再创建⼀次,就能成功了,然后再刷新⼀次,退出mysql。
不放⼼的可以再show⼀次你的user表
select user,host,authentication_string from user;
就会看到你新建的这个已经加密了。
之后就可以⽤新账户快乐地登陆了。
(搞完了,现在我很怀疑⾃⼰之前花那么多时间去改root密码⼲什么,没⽤啊啊啊啊最后只要新创建⼀个账户就⾏了啊啊啊啊啊我好绝望)⾏吧,安慰⾃⼰,我在变强,我在变强。告辞了⼤兄弟们,快乐的mysql去了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。