【解决】连接 MySQL 失败: php_network_getaddresses: getaddrinfo failed

 

 

原提示:连接 MySQL 失败: php_network_getaddresses: getaddrinfo failed: ��֪��������������

 

 

 上面是自己遇到的问题,做一个记录:

前阵子购买了一个云虚拟主机,便宜,买之前特意问了支持PHP

而还送了一个MYSQL数据库,查了一下是5.1的,当时觉得可能用不上。也就没上心。

 

用PHP的框架Laravel写了一个网站,写完想要挂上去的时候,出了大问题了。

1.首先是laravel是二级目录public为对外公开目录,可能是为了安全考虑,但放在虚拟主机里面就麻烦大了。

无法指向二级目录为默认首页,试了好几种方法,都以失败告终。比如什么.htaccess静态解析等,(这个没成,也可能是我设置或者用的不对)

反正不行。最后没办法。把index.php及public所有文件复制到了根目录了。静态的css和js等文件也都搬出来了。

虽然安全上可能会有隐患,只能是暂时这样用了。

2.接着虽然网站可以访问了,静态的页面也没有问题,但当访问到新闻的时候,出问题了。无法读取数据库内容,一开始以为写错密码啥的了,

不过也不可能啊。在本地测试好好的。线上就不用了呢?

开始和客服技术人员沟通,提交工单,提了整整4大片,无语了,最后还是没有解决。没法,自己测试吧。

3.先解决数据库问题,测试一下是不是数据有问题,正好买的时候送的一个MYSQL的库(后来才发现是5.1版本的)

就用这个测试一下,把数据导入进去。结果用navicat一连接,死活连接不上,坑呀。

又和客服沟通,就说没有问题。我这换了IP,也用命令行连接,就是不行。终于放弃了。

得出结论:这东西应该是不让外部人访问。

既然连不上,只好老老实实用后台提供的phpmyadmin了,虽然不熟,凑和着用吧。

前前后后导数据,导不进去,总是报错:SQLSTATE[42000]: Syntax error or access violation: 1115 Unknown character set: 'utf8mb4' (SQL: select * from `teachers`)

后来搜了下,原来mysql5.1不支持utf8mb4,又把导出来的sql文件手工编辑了一下。终于导入成功了。

4.写了一个phpinfo的单独数据库连接代码,测试了一下。终于连接成功,拿到了数据。再改一下连接别的数据库,还是报错。

只能证明,虚拟主机的空间,只能用自己的数据库连接,外连,不行。

而里面的程序也只能连接自己的库。

自己的库只能用自己的后台里的phpmyadmin访问。别的访问也不行。

真坑。没办法,谁让便宜了。按人家的走吧。

(主要的是客服也没和我说呀,白浪费好长时间测试)

posted @ 2020-06-08 15:27  鳳舞九天  阅读(3245)  评论(0编辑  收藏  举报