【发布时间】:2013-06-08 04:38:43
【问题描述】:
我收到了这个错误:
Warning: PDO::__construct() [<a href='pdo.--construct'>pdo.--construct</a>]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. (trying to connect via tcp://1:3306) in Z:\work\...
我的 localhost/phpmyadmin 工作正常,但我无法访问 localhost 或 127.0.0.1 ,我得到一个空白页面“禁止访问:您无权访问此服务器上的 /。”
我的 80 端口上没有其他东西在运行
我修改了我的 httpd.conf
DocumentRoot "z:/work/"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "z:/work/">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</Directory>
还添加到我的 httpd-vhosts.conf 中
<Directory C:/Users/Alex/Documents/GitHub>
Order Deny,Allow
Allow from all
AllowOverride All
</Directory>
<Directory Z:/work>
Order Deny,Allow
Allow from all
AllowOverride All
</Directory>
<VirtualHost *:80>
DocumentRoot "Z:\work\mysite"
ServerName bullseye.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:\Users\Alex\Documents\GitHub\Myproject"
ServerName framework.local
</VirtualHost>
我的 phpmyadmin.conf 如下
Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.5.1/"
<Directory "c:/wamp/apps/phpmyadmin3.5.1/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</Directory>
给出错误的代码:
$host = 'localhost';
$user = 'root';
$pass = '';
$database = 'mydatabase';
$this->db = new PDO('mysql:dbname=' . $database . ';host=' .$host . ';charset=utf8', $user, $pass);
我使用 mysql 或 msqli 而不是 PDO 得到了同样的错误
【问题讨论】:
-
phpMyAdmin 只是一个客户端程序,它与 mySQL 服务器的运行位置无关。你能展示一下你使用什么代码来连接数据库,你真的有一个在 localhost 上运行的数据库服务器吗?
-
是的,我的 localhost 上有一个数据库(通过 localhost/phpmyadmin 创建)如果我尝试通过 mysql 或 PDO 连接,我会遇到同样的错误,我是 currenylu 使用这个:$this->db = new PDO('mysql:dbname=' . $database . ';host=' .$host . ';charset=utf8', $user, $pass);其中主机 = 'localhost' 用户 = 'root' 和密码 = ''
-
您是否 100% 确定按照您展示的方式进行操作?因为PHP - Variables not replaced in PDO connection string
-
100% 确定,如果我使用 $this->db = new PDO('mysql:dbname=mydatabase;host=localhost;charset=utf8', 'root', '');