重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
命令行都要以管理员运行
成都创新互联成都网站建设按需设计,是成都网站推广公司,为户外休闲椅提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站推广热线:028-86922220
1:net stop mysql 停止mysql服务
2:mysqld --console --skip-grant-tables --shared-memory 启动MySQL服务的时候跳过权限表认证
3:由于上面的命令行被mysql的服务给占用,我们得重新开启一个新的命令行
4:在新开的命令行中执行mysql
5:update user set authentication_string = '' where user='root' ; 将root用户的密码清空
6:quit 退出,然后在之前的命令行将我们开启的mysql服务停止掉(Ctrl+C或者关闭命令行),然后执行net start mysql 重新启动mysql服务
7:在我们之后开启的命令行中输入mysql -uroot -p 然后按enter键,输入密码继续按enter键(这里密码已经被清空),
8:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 修改密码
9:退出后,使用新密码登录
注意的地方,网上有些给的是使用update命令在第五步直接修改密码为我们重置的密码,然后使用flush privileges;命令刷新权限再退出,重启mysql服务,然后使用我们重置的密码重新登陆。然而你会发现登录会提示密码不正确,
下面是使用update命令将密码修改为root
登录报错,说明使用update直接修改密码是不可以的。我们也可以从上面看到update保存的密码是明文
使用alter命令修改后的密码是加密的
update 方法保存的为明文是由于没有使用password()方法,而password()方法在mysql5.7.6版本后已经废弃了,所以必须alter命令去修改密码了。
如果在第5步直接使用alter命令去修改密码也是不可以的,会报错
说是在免鉴权的情况下不支持这个操作
所以我们必须先清空密码,然后再使用alter命令修改密码
ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉
希望能帮助你,还请及时采纳谢谢
Ubuntu在Mysql 8.0在线安装成功后(sudo apt install),默认的root用户密码为空,默认监听本机,只能在本机登录,直接命令`mysql`即可登录 。
Centos安装完成后,可能需要密码,密码位置在
如果没有密码,或者忘记密码请在配置文件加入 skip-grant-tables ,ubuntu配置文件在 /etc/mysql/ 路径下。
注: 跳过密码后,登录进入后必须先 flush privileges 才能修改密码。
1:第一种方式
直接在用Linux命令 mysqladmin 修改。
2:第二种方式
登录mysql 更改密码
显示ok成功。
注:由于我这里没有默认安装validate_password插件,所以直接修改成功,有些默认安装的是修改不成功的,因为太简单的密码,不符合密码规则,会报错如下: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3:关于validate_password插件
validate_password是一款密码规则插件,查看密码规则命令:
安装完成后,查看显示如下:
参数说明:
当指定密码规则后,如果嫌麻烦,直接更改密码规则即可,如偏要设置123456简单密码。
虽然改了密码,但是发现root登录仍无需登录密码,或者加参数-p输入密码时,任何密码都可以进入。
原因:查看用户插件信息
显示root插件为auth_socket,这种插件无需密码,所以设置任何密码都无效。
更改插件为 mysql_native_password 或者 caching_sha2_password
更改完成后,需重新设置root密码生效,修改方法同上。修改后,登录需要输入正确密码
注:为了提供更安全的密码加密,MySQL8.0的首选默认密码认证插件是caching_sha2_password,而不是mysql_native_password,根据自己需求选择插件
关于auth_socket插件
这种插件验证方式有以下特点:
auth_socket 这个插件因为有这些特点,它很适合我们在系统投产前进行安装调试的时候使用,而且也有相当的安全性,因为系统投产前通常经常同时使用操作系统的 root 用户和 MySQL 的 root 用户。当我们在系统投产后,操作系统的 root 用户和 MySQL 的 root 用户就不能随便使用了,这时可以换成其它的验证方式,可以使用下面的命令进行切换:
mysql长时间不用,容易忘记密码,怎么重置mysql密码问题就来了,当然网上有n多种办法,我这边就简单记录其中一种方法,便于自己和他人使用。
第一步:忘记密码不要慌,先找到my.cnf配置文件,yum安装一般都在/etc下,源码安装在安目录下。
添加skip-grant-tables
第二步:重启mysql
第三步:无码进入mysql,遇到需要输入密码回车即可。
第四步:重置root密码
第五步: 将第一步的skip-grant-tables删除,重启mysql就ok了。
总结:忘记mysql密码重置偶尔会遇到,也不算难。网上五花八门,为了方便,所以记录在这里以备不时之需。喜欢我的文章记得关注哦????!
正确的姿势:
查询当前用户,确保有权限:
这样的方式在mysql8下面会报错:
仅是使用,就没有详细研究出错的原因,猜测 mysql8 对安全级别要求更高了。
希望能帮助到遇到相同问题的小伙伴。
如果你了解具体原因,也欢迎反馈。平时使用mysql5.7比较多,没有遇到这么多问题,最近升级 mysql8 使用上发现和 mysql5.7 还是有不少差别的。
起因: 初始自动生成的密码太复杂了,并且粘贴过去登录一直报错,所以想直接修改密码
过程:
还有些修改密码的指令是这样的,set password for ‘root’@‘localhost’=password(‘MyNewPass4!’); 也会报错
应该是
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER;