解决mysql问题:Access denied for user ‘root‘@‘localhost‘ 和创建不了数据的问题

背景

在搞一键式部署免安装版mysql时,出现了一些状况。网上搜了一些,说的乱七八糟的,没个靠谱点的…只有自己解决了

1、 登录不上,报错信息如下:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

2、自己创建了用户却创建不了数据库
报错信息忘了,提示的是权限问题

3、解决登录问题以后又出现这

You must reset your password using ALTER USER statement before executing this statement.

解决办法

每天很忙的,出什么状况,那就简单粗暴一点

1、第一次重启mysql, 先跳过密码登录,重新设置密码。

2、第二次重启mysql,把跳过密码登录注掉。给自己创建的用户把所有权限都给上,再改一次密码,设置密码永不过期

解决步骤

1 停止mysql服务

net stop 这块写mysql的服务名

2 跳过密码登录

在my.ini文件里加上这行文字
skip-grant-tables

3 启动mysql服务

net start 这块写mysql的服务名

4 登录mysql

.\mysql.exe -P3306 -u root -p

注: 管理员权限,进入到mysql安装目录下,再进入bin目录,执行命令。本机多个mysql时要指定端口号

如果已经配了mysql的环境变量,上面的注意事项忽略掉

5 修改密码

登录进mysql后,修改密码

update mysql.user set authentication_string=password('乱七八糟的密码') where  user='root';
flush privileges;

6 重启mysql登录

​ 把刚第二步my.ini文件加的那个skip-grant-tables 删掉或注掉。保存文件

​ 再执行以下命令

net stop 这块写mysql的服务名;
net start 这块写mysql的服务名;
.\mysql.exe -P3306 -u root -p;

下面这些命令默认已经进入mysql了,然后执行的
alter user 'root'@'%' identified by '密码';  这行是修改密码的,不修改可能会提示 You must reset your password.......
grant all on *.* to '自己的用户名'@'%';     这行是给用户加所有权限的
alter user '自己的用户名'@'%' password expire never; 设置用户密码不会过期
flush privileges;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值