我有以下PHP代码连接到我的db:
<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
?>
但是,我收到以下错误:
Warning: mysql_connect() [function.mysql-connect]: [2002] A
connection attempt failed because the connected party did not (trying
to connect via tcp://localhost:3306) in C:\Program Files (x86)\EasyPHP-
5.3.2i\www\checklogin.php on line 11
Warning: mysql_connect() [function.mysql-connect]: A connection
attempt failed because the connected party did not properly respond
after a period of time, or established connection failed because
connected host has failed to respond. in C:\Program Files (x86)\EasyPHP-
5.3.2i\www\checklogin.php on line 11
Fatal error: Maximum execution time of 30 seconds exceeded in
C:\Program Files (x86)\EasyPHP-5.3.2i\www\checklogin.php on line 11
我可以通过phpmyadmin添加db / tables但我无法使用PHP连接。
以下是我的phpmyadmin页面的屏幕截图: 可能是什么问题?
答案 0 :(得分:4)
检查以下内容:
localhost
更改为127.0.0.1
基本上,您获得的错误意味着它无法连接到服务器。它向localhost:3306
发送请求,只等待很长时间才能得到答复。它没有得到它,这意味着请求被阻止(防火墙)或被忽略(MySQL没有运行和/或正在侦听不同的端口)
如果phpMyAdmin附带MySQL安装,那么可能是它被配置为使用相应的不同端口
答案 1 :(得分:1)
答案 2 :(得分:0)
也许你的MySQL没有使用TCP进行localhost。请尝试
$host='/tmp/mysql.sock';
或它可能正在使用的任何套接字。
答案 3 :(得分:0)
我也注意到了这个问题的linux版xampp与运行在网络上的MySSQL 5.6.12-log。此外,在MySQL论坛(http://forums.mysql.com/read.php?52,294772,294772)中提出的问题类似于此,但未得到满意的答复。
我注意到的是,这可能是由于网络不稳定,或者网络中其他开发人员同时连接到数据库服务器的太多mysql连接 - 并且保持端口号繁忙一段时间。它通常与配置的连接时间,最大执行时间,用户名/密码错误等无关。
令人惊讶的是,相同的脚本,相同的密码和相同的网络允许同一服务器在第二次尝试时正常运行 - 无需做任何修复。
因此,它应该是您暂时不稳定的网络波动(或繁忙的mysql连接),它会一直打开和关闭,并且当网络在很短的时间内关闭时,您的脚本会尝试连接到服务器。
这是与此错误相关的个人经验的猜测答案,可能不准确。
但是如果错误信息是持久的,你真的需要做点什么。