【2019.3】Mysql8.0免安装版本数据库配置问题修改密码

在此先感谢论坛博客的各位大佬,因为实在是查了太多资料,连我自己究竟是在哪里拼拼凑凑出解决办法的过程都差不多快模糊了,第一次安装数据库,花了3天终于搞定了,博主的很多教程都是旧版本的指令,根本无法运行。想了想还是得写一写留个纪念。

**

一、关闭SQL

任务管理器->找到mysql.exe->结束人物进程
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里一一对应。
在这里插入图片描述

八、修改密码

参考:https://www.cnblogs.com/zuokun/p/17490428.html
步骤:

  1. 重新开启一个新的窗口登录 mysql,使用命令:mysql -u root
  2. 设置密码为空: mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
    mysql> flush privileges;
    mysql> exit;
  3. 再次登录 mysql mysql -u root
  4. 更改密码

mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123’;
mysql> flush privileges;
mysql> exit;

输入: update mysql.user set authentication_string=(“12345”) where user=“root”; 这个命令不知道是不是操作原因,我生成出来的密码没有自动加密,无法登录成功。所以重新找了上面的参考网站和步骤方法成功修改了密码,如果上面的步骤不成功大家可以参考这几个命令修改,或者看到最后还可以新建用户重新挽救。

还有使用authentication_string可以,password会失败,下面两个命令大家可以尽管尝试一下~

原本尝试(修改失败):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;(必做)

最后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’;
如果提示: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去了。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值