MySQL: Access denied for user 问题

2017-11-23 16:43:05 +08:00
 XiLemon

在本地电脑上,用 Navicat 能连上服务器上的 MySQL,但是自己的程序连不上,日志里边 @后面显示的不是 IP,是本地电脑的名称。
用 Navicat 查到的 user 表里面 guest 用户相关的记录有两条,联系数据库提供方的人,让他们删除了我觉得有问题的一条:

%localhost | guest | ......

现在程序还是连不上 MySQL,Navicat 依旧可以正常连上使用。网上 Google 了一通,目前还没有找到解决办法,求支招。

3333 次点击
所在节点    程序员
12 条回复
XiLemon
2017-11-23 17:40:01 +08:00
各位老铁,有没有解决方法哟!!!
b821025551b
2017-11-23 17:45:19 +08:00
1:在程序里把连接地址改成"localhost",或者
2:在 MySQL 里给你电脑做个授权
hackerhuanggit
2017-11-23 17:46:29 +08:00
@XiLemon 你需要在 mysql 的配置文件里,给你需要连接电脑的 iP 地址权限
dawncold
2017-11-23 17:49:29 +08:00
程序里用 localhost 也连不上吗?
XiLemon
2017-11-23 18:06:51 +08:00
@dawncold 你说的 localhost 是指? MySQL 在服务器上。
XiLemon
2017-11-23 18:25:25 +08:00
@b821025551b
@hackerhuanggit

数据库没权限弄啊,服务器也上不了的。
dawncold
2017-11-23 19:57:54 +08:00
看起来你本机的程序向本机的 MySQL 建立连接,如果你本机没有 MySQL 的话,连不上是正常的。你可以连服务器的 MySQL,那你程序中修改连接 MySQL 的主机地址也是可以连上的,否则你的 Navicat 是如何连接到远程的?
XiLemon
2017-11-23 20:13:25 +08:00
@dawncold 本机木有 MySQL,可能是我没有权限访问我要访问的那个数据库,他们数据库改用另外一个了,配置里面改一下数据库名就好了。。。

不过我用 Navicat 还是能查看所有的数据库表欸。。。
xfspace
2017-11-23 20:44:33 +08:00
@XiLemon 你的“程序”没改 MySQL server 地址吧,不然怎么也得提示 `guest` @ `数据库提供方的服务器地址`
JarvisHuang
2017-11-23 22:21:49 +08:00
当 mysql 部署在其他服务器上时,要远程访问就需要分配权限了。 分配步骤如下:

1 登录到 mysql 中
mysql -u root -p
2 切换到 mysql 数据库下
use mysql;
3 授权远程登录的用户及地址
//授权的地址为 192.168.1.101 ,用户为 root,密码为 123456
> grant all PRIVILEGES on test_db.* to root@'192.168.1.101' identified by '123456';
4 让修改的配置生效
> flush privileges;
cheky
2017-11-23 22:29:00 +08:00
前几天刚帮学生解决过这个问题,applicationContext 读取 properties 文件的方式有问题,换 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 这种就好了。
XiLemon
2017-11-24 09:20:20 +08:00
@xfspace
@JarvisHuang
@cheky 记下,已备不时之需。

目前已经解决了,URL  里面换成另外一个数据库就好了,应该是他们换数据库了。  

其实我不明白的地方在于,用 Navicat 在上,用一样的账号是可以访问所有数据库的,能查看所有表的记录啊,但是程序里面用原来的数据库,就显示 Access denied。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/408949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX