[转帖]连接MySQL数据常见问题_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1666 | 回复: 0   主题: [转帖]连接MySQL数据常见问题        下一篇 
ad222888
注册用户
等级:新兵
经验:66
发帖:134
精华:0
注册:2016-9-25
状态:离线
发送短消息息给ad222888 加好友    发送短消息息给ad222888 发消息
发表于: IP:您无权察看 2018-8-28 16:18:05 | [全部帖] [楼主帖] 楼主

对于 ERROR 1045 (28000): Access denied for user ‘root‘@‘127.0.0.1‘ 此类错误返回时, (using password: ?)中?的
关键字是YES还是NO,关键不在于用户是否存在,密码是否正确,它的结果取决于登录时,用户对于密码有没有字符串的输入,
如果没有,MySQL数据库验证后,若出错返回此类信息,则应是 (using password: NO),若用户对密码有字符串的输入,返回的则是

(using password: YES)。


原因1 : 客户端远程访问的用户账号并未创建

检查

以管理员ROOT登录后,show grants for ‘user‘@’IP‘; 或者 select user from mysql.user; 确认用户账号是否存在。

mysql> show grants for ‘test‘@‘127.0.0.1‘; ERROR 1141 (42000): There is no such grant defined for user ‘test‘ on host ‘127.0.0.1‘ mysql>


返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘test‘ on host ‘127.0.0.1‘
说明,没有jtsec用户,或者没有对jtsec用户进行在192.168.8.123远程访问的授权。

解决

mysql> grant all privileges on *.* to ‘test‘@‘127.0.0.1‘ identified by ‘test‘ with grant option;
mysql> flush privileges;
mysql> show grants for ‘test‘@‘127.0.0.1‘;
mysql> select user,host from mysql.user;


原因2 : 用户账号存在,但未对其所在的客户端的IP进行远程访问授权允许

检查

以管理员ROOT登录后 show grants for ‘user‘@‘IP‘;

mysql> show grants for ‘root‘@‘127.0.0.1‘;
ERROR 1141 (42000): There is no such grant defined for user ‘root‘ on host ‘127.0.0.1‘


返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘root‘ on host ‘127.0.0.1‘
说明,没有root用户,或者没有对root用户进行在127.0.0.1远程访问的授权。

mysql> show grants for ‘root‘@‘localhost‘;


或者直接查询mysql的user用户表select user,host from mysql.user;

mysql> select user,host from mysql.user;


解决

进行root用户的远程访问授权,可以授权到指定的客户端IP,也可以授权为所有IP都可访问(host值为%)。
授权为所有IP都使用用户root,密码root,来远程访问数据库

mysql> GRANT ALL PRIVILEGES ON *.* TO‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
mysql> flush privileges;


再次进行授权的查询

mysql> show grants for ‘root‘@‘%‘;


再次查询授权表记录

mysql> select user,host,password from mysql.user;


mysql5.7用下面这条语句查询

mysql> select user,host,authentication_string from mysql.user;


原因3 : 用户账号授权访问的密码不正确

检查

以管理员ROOT登录后, select user,host, authentication_string from mysql.user;

mysql> select user,host, authentication_string from mysql.user;


解决

使用正确的访问密码进行访问即可。 




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论