大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果不幸忘记或丢失了 MySQL root用户的密码,需要一种方法来以某种方式恢复它。 我们需要知道的是密码存储在用户表中。 这意味着我们需要想办法绕过 MySQL 认证,这样我们才能更新密码记录。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站建设、源汇网络推广、成都小程序开发、源汇网络营销、源汇企业策划、源汇品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供源汇建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
幸运的是,有一个简单的实现,本教程将指导您完成在 MySQL 8.0 版本中恢复或重置 root 用户密码的过程。
根据 MySQL 文档,有两种方法可以重置root用户的密码。其中一种方法是使用 --skip-grant-tables 选项启动 MySQL 服务。 这不太安全,因为当服务以这种方式启动时,所有用户都可以在没有密码的情况下进行连接,不过这种方法比较简单,我们首先来看看这种方法。
如果服务器启动--skip-grant-tables,--skip-networking 选项会自动激活,因此远程连接将不可用。
首先停止MySQL服务
使用 选项 --skip-grant-tables 启动MySQL服务
然后,您只需运行mysq即可连接到mysql服务器。
由于使用 --skip-grant-tables 选项启动服务时禁用了帐户管理,因此我们将不得不重新加载授权。 这样我们以后就可以更改密码:
现在可以运行以下查询来更新密码。 确保将“new_password”更改为您希望使用的实际密码。
现在停止 MySQL 服务器,然后正常启动它。
现在使用新密码再次连接MySQL
启动mysqld时,如果遇到下面的错误
搜索一番,参考文章2和3给出了各种可能性,通过查询可以看出确实有个mysqld服务未关闭,可是之前我确实关闭了mysql,不知道怎么回事。
只能通过kill命令杀死mysql
进入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 ‘用户名’@‘主机名’ ;
起因: 初始自动生成的密码太复杂了,并且粘贴过去登录一直报错,所以想直接修改密码
过程:
还有些修改密码的指令是这样的,set password for ‘root’@‘localhost’=password(‘MyNewPass4!’); 也会报错
应该是
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER;
免密登录,置空密码(authentication_string或者password)
恢复配置文件(注释掉或者删掉 skip-grant-tables),重启mysql服务
重新免密登录,修改密码(authentication_string或者password)
验证结果,输入刚刚的密码登录