MySQL远程登录提示Access denied的场景

2023-09-22 08:46:04 浏览数 (11)

厂商给的某个MySQL库,通过客户端远程登录,提示这个错误,

代码语言:javascript复制
Access denied for user '用户名'@'IP' (using password: YES)

确认输入的账号密码都是正确的,出现这个错误说明端口是通的。

此时可以检索mysql.user,如果待登录账号的记录host字段是localhost,说明仅允许本地登录,禁止远程登录,

代码语言:javascript复制
[mysql]> select user, host from user;
 ------------------ ----------- 
| user             | host      |
 ------------------ ----------- 
| test             | localhost |
 ------------------ ----------- 

需要将test用户的host改为%,表示可以从任意的网络IP远程登录。

这是一种可能,另外一种可能,就是没给这个账号授予表的访问权限,需要单独授权,可以通过如下语句执行,

代码语言:javascript复制
grant all privileges on bisal.* to 'test'@'%';

另外,如果用的MySQL 8.0以上的,直接使用grant,可能会提示错误,

代码语言:javascript复制
You are not allowed to create a user with GRANT

因为这个版本不支持授权的时候就进行用户创建,得创建之后才能授权,

代码语言:javascript复制
create user test@'%' identified by 'test';
grant all on test.* to 'test'@'%';

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

0 人点赞