0

php链接阿里云线上的远程服务器,使用原生测试,简单的代码。
首先:

1. mysql相关扩展已经安装
2. 远程服务器上的mysql服务器已允许远程访问,并且本地已经通过phpstrom和native premium等工具链接测试成功。

但是现在出现了个问题,就是当我在mysqli_contetn()第一个参数填入远程地址的时候,最终的报错信息的ip地址,竟然是我的外网地址。
如下图所示:
    183.156.*.*: 这是我的外网地址。
    139.224.*.*: 这是我想访问的远程mysql地址
现在的困惑就是,请指教!    

6个回答

1

已采纳

看下下面的结果

use mysql;
select Host,User,Password from user;
1

@后面本来就是指客户端ip地址,还是检查一下用户名密码数据库名称对不对

0

阿里云的数据库是不允许外网访问的

0

需要明确的是,你的 phpstorm和navicat用的是这个183.156.x.x的IP连的数据库吗?如果是,我也不知道怎么解决,如果不是,我觉的你应该知道怎么解决。

0

如上面伙伴回复你的:
那个报错中的地址就应该是你的外网ip,它代表连接来源ip,不代表服务器ip。
至于你为何php脚本数据库连不上,真心感觉你可能眼花了,用户名,密码和数据库,是不是哪个搞错了。把代码里的数据往工具里填写再重新试一下?
反正感觉有点诡异!!!

0

我好像知道问题的所在了,刚刚看了一下mysql的文档。@玄空异人
尴尬,好像艾特不了别人)

第一行和第三行的密码是一直的,也就是本地设置的。
其中第二行的密码是我线上代码里面设置的密码。
也就是说,mysql会根据来源不同,但是用户相同,密码不相同。。

最终,还是靠@玄空异人 的提醒查看密码。。而找到问题

1

是的,即使用户名密码相同,密码不同或者为空都对应着不同的连接方式,这个坑我经历过好多次了。

灵风子 · 9月14日

展开评论

撰写答案