在本地电脑上,用 Navicat 能连上服务器上的 MySQL,但是自己的程序连不上,日志里边 @后面显示的不是 IP,是本地电脑的名称。
用 Navicat 查到的 user 表里面 guest 用户相关的记录有两条,联系数据库提供方的人,让他们删除了我觉得有问题的一条:
%localhost | guest | ......
现在程序还是连不上 MySQL,Navicat 依旧可以正常连上使用。网上 Google 了一通,目前还没有找到解决办法,求支招。
1
XiLemon OP 各位老铁,有没有解决方法哟!!!
|
2
b821025551b 2017-11-23 17:45:19 +08:00
1:在程序里把连接地址改成"localhost",或者
2:在 MySQL 里给你电脑做个授权 |
3
hackerhuanggit 2017-11-23 17:46:29 +08:00
@XiLemon 你需要在 mysql 的配置文件里,给你需要连接电脑的 iP 地址权限
|
4
dawncold 2017-11-23 17:49:29 +08:00
程序里用 localhost 也连不上吗?
|
6
XiLemon OP |
7
dawncold 2017-11-23 19:57:54 +08:00
看起来你本机的程序向本机的 MySQL 建立连接,如果你本机没有 MySQL 的话,连不上是正常的。你可以连服务器的 MySQL,那你程序中修改连接 MySQL 的主机地址也是可以连上的,否则你的 Navicat 是如何连接到远程的?
|
8
XiLemon OP @dawncold 本机木有 MySQL,可能是我没有权限访问我要访问的那个数据库,他们数据库改用另外一个了,配置里面改一下数据库名就好了。。。
不过我用 Navicat 还是能查看所有的数据库表欸。。。 |
9
xfspace 2017-11-23 20:44:33 +08:00 via Android
@XiLemon 你的“程序”没改 MySQL server 地址吧,不然怎么也得提示 `guest` @ `数据库提供方的服务器地址`
|
10
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; |
11
cheky 2017-11-23 22:29:00 +08:00
前几天刚帮学生解决过这个问题,applicationContext 读取 properties 文件的方式有问题,换 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 这种就好了。
|
12
XiLemon OP @xfspace
@JarvisHuang @cheky 记下,已备不时之需。 目前已经解决了,URL 里面换成另外一个数据库就好了,应该是他们换数据库了。 其实我不明白的地方在于,用 Navicat 在上,用一样的账号是可以访问所有数据库的,能查看所有表的记录啊,但是程序里面用原来的数据库,就显示 Access denied。。。 |