正确的姿势:
创新互联公司主营通渭网站建设的网络公司,主营网站建设方案,成都app软件开发,通渭h5小程序设计搭建,通渭网站营销推广欢迎通渭等地区企业咨询
查询当前用户,确保有权限:
这样的方式在mysql8下面会报错:
仅是使用,就没有详细研究出错的原因,猜测 mysql8 对安全级别要求更高了。
希望能帮助到遇到相同问题的小伙伴。
如果你了解具体原因,也欢迎反馈。平时使用mysql5.7比较多,没有遇到这么多问题,最近升级 mysql8 使用上发现和 mysql5.7 还是有不少差别的。
在使用mysql时,如果想修改用户密码,怎么修改?我们可以借助客户端工具来修改,下面来看一下。
01
打开客户端工具Navicat,打开数据库里的mysql库,这是一个系统数据库。
02
打开后,在Tables表里,找到user表,这是保存系统用户的一个表数据。
03
打开后,就可以在这里看到每个数据库的用户名和密码了。
04
要修改密码,我们点击单元格,让其变成编辑状态后,直接输入新的密码就行了。
免密登录,置空密码(authentication_string或者password)
恢复配置文件(注释掉或者删掉 skip-grant-tables),重启mysql服务
重新免密登录,修改密码(authentication_string或者password)
验证结果,输入刚刚的密码登录
起因: 初始自动生成的密码太复杂了,并且粘贴过去登录一直报错,所以想直接修改密码
过程:
还有些修改密码的指令是这样的,set password for ‘root’@‘localhost’=password(‘MyNewPass4!’); 也会报错
应该是
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER;
进入mysql内修改密码
alter user ‘名字’@‘主机名’ identified by "设置的新密码";
2.不进入mysql内进行修改密码
mysqladmin -u用户名 -p 旧密码 password "设置新密码" ;
3.mysql内进行修改密码
set password for 用户名@localhost=password('新密码')
mysql8.0创建用户并设置权限
☆ mysql8.0版本以后无法直接赋予权限必须先创建用户后在进行授权,而且赋予权限时grant 不能带密码
1.创建用户
create user '用户名'@'主机名' identified by "密码";
2.通过系统数据库mysql中的user表查看已经存在的用户
use mysql;
select * from user\G;
3.Grant 实现对用户的授权
grant 权限类型 on 需授权的数据库 . 需授权的表 to ‘用户名’@ ‘主机名’
[with grant option ]
☆ [with grant option ] : 赋予grant权限;如果授予所有的权限,则权限类型可使用 all ;为所有的数据库和表授权 ,权限范围可为 *.*
4.查看权限
show grants for '用户名'@‘主机名’ ;
mysql8.0删除用户并移除权限
1.删除用户
drop user ‘用户名’@‘主机名’ ;
2.移除所有权限
revoke all on *.* from ‘用户名’@‘主机名’ ;