原提示:链接 MySQL 失败: php_network_getaddresses: getaddrinfo failed: ��֪��������������php
上面是本身遇到的问题,作一个记录:css
前阵子购买了一个云虚拟主机,便宜,买以前特地问了支持PHPmysql
而还送了一个MYSQL数据库,查了一下是5.1的,当时以为可能用不上。也就没上心。laravel
用PHP的框架Laravel写了一个网站,写完想要挂上去的时候,出了大问题了。sql
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访问。别的访问也不行。
真坑。没办法,谁让便宜了。按人家的走吧。
(主要的是客服也没和我说呀,白浪费好长时间测试)