mysql/mariadb_Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)

MariaDB或MySQL遇到的问题

问题解释:要想成功登录mysql必需满足两点

        1.本机是否有权限登录mysql(如果你是远程的话)

        2.密码是否正确

以上报错是拒绝访问所以权限问题和密码错误都有可能,YES和NO只代表你是否输入了密码。无法看出密码是否正确。

 先解决密码(这里默认你不记得密码):确认密码没错可直接检查权限

修改密码解决方案一

1.修改 my.cnf 配置文件

在 /etc/my.cnf 配置文件中【mysqld】下面的最后一行加入 skip-grant-tables

2.重启MariaDB服务

systemctl restart mariadb

3.登陆mariadb并修改密码

在命令行中,输入 mysql -u root -p命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中。
修改密码后,执行flush privileges后退出。

[root@localhost Desktop]# mysql -uroot -p
Enter password: 

MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> update user set password=password('root') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 5  Changed: 0  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.注释掉之前加上的 skip-grant-tables后重启mysql服务

systemctl restart mariadb

5.用新密码重新登陆mariadb测试即可

权限检查

登录mysql并选择mysql数据库

[root@localhost Desktop]# mysql -uroot -p
Enter password: 

MariaDB [(none)]> use mysql;
Database changed

 此时我们可以看到 均只有本机(本地)才能登录mysql,此时我们需要加上权限使其能远程连接登录。

MariaDB [mysql]> grant all privileges on *.* to root@"%"  identified by "mycisco.cc";

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

此“%”代表给所有主机赋予远程访问权限,也可以直接填写指定IP。

此时再查询就可以看到权限已经加上了

此时再次尝试应该就没问题。 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值