2010-05-04 169 views
0

我有以下的PHP代码连接到我的分贝:麻烦连接到MySQL数据库(PHP)

<?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,但我不能使用PHP连接。

以下是我的phpmyadmin页面的屏幕截图: enter image description here 可能是什么问题?

+0

这是一个家庭服务器?我有主机,我无法通过本地主机连接。 – Galen 2010-05-04 21:01:24

+0

@galen好,因为phpMyAdmin是工作,我们可以假设它的工作在localhost – nc3b 2010-05-04 21:03:18

+0

@ nc3b:我不同意。如果你检查人员的答案,你会发现我是对的。 – Galen 2010-05-04 22:58:19

回答

4

检查以下内容:

  1. 是MySQL的运行?
  2. 是否有防火墙阻止您的计算机在端口3306上接受与MySQL的连接?
  3. MySQL是在端口3306上侦听,还是被改为非标准的东西?
  4. 一个奇怪的一个,但尝试从localhost更改为127.0.0.1

基本上,你得到的错误意味着它不能连接到服务器。它向localhost:3306发送请求,并且只等待回复。它没有得到它,这意味着请求被阻止(防火墙)或忽略(MySQL没有运行和/或正在监听不同的端口)

如果phpMyAdmin附带MySQL安装,那么它可能是它被配置为使用适当的不同端口

+2

#4似乎工作,谢谢。 – ajoe 2010-05-04 22:04:23

+0

@ user332817如果是这样的话,你应该看看你的主机文件,在Windows上的'c:\ windows \ system32 \ drivers \ etc \ HOSTS',并确保它有一行像127.0.0.1 localhost'。这将确保输入'localhost'实际上意味着映射到您的本地主机。 – Tarka 2010-05-05 02:58:05

0

也许你的MySQL没有使用本地主机的TCP。请尝试

$host='/tmp/mysql.sock'; 

或它可能使用的任何套接字。

1

哈我也有这个问题,现在我通过改变端口号例如“find.db.13344.hostedfind.com:3306”来解决它。之前,我的连接试图访问“find.db.13344.hostedfind.com:3307”,所以它给了我这个错误 警告:mysql_connect()[function.mysql-connect]:[2002]连接尝试失败,因为连接方没有(尝试通过tcp:// localhost:3306连接)。

0

我也注意到这个问题linux版本的xampp与MySSQL 5.6.12-日志在网络上运行。此外,在MySQL论坛(http://forums.mysql.com/read.php?52,294772,294772)中提出的问题与此类似,但未得到满意的回答。

我注意到的情况是,这可能是由于网络不稳定或者同时连接到数据库服务器的网络中其他开发人员的太多mysql连接造​​成的 - 并且端口号保持一小部分时间。它不经常涉及到配置的连接时间,也没有最大的执行时间,也没有错误的用户名/密码等。

令人惊讶的是,相同的脚本,相同的密码和相同的网络允许相同的服务器在第二次尝试时正常运行 - 而无需做任何修补。

因此,它应该是你暂时不稳定电网波动(或忙MySQL连接),即亮和灭,和你的脚本试图连接到服务器时,网络系统进行停机很短的时间。

这是有关这个错误的个人经验推测的答案,可能不准确。

但是,如果错误信息是持久性的,你应该需要做的事情。