连接到MySql DB(PHP)时出现问题

时间:2010-05-04 20:55:39

标签: php sql mysql phpmyadmin

我有以下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页面的屏幕截图: enter image description here 可能是什么问题?

4 个答案:

答案 0 :(得分:4)

检查以下内容:

  1. MySQL正在运行吗?
  2. 是否有任何防火墙阻止您的计算机接受端口3306上与MySQL的连接?
  3. MySQL是在侦听端口3306,还是将其更改为非标准的?
  4. 奇怪的,但请尝试从localhost更改为127.0.0.1
  5. 基本上,您获得的错误意味着它无法连接到服务器。它向localhost:3306发送请求,只等待很长时间才能得到答复。它没有得到它,这意味着请求被阻止(防火墙)或被忽略(MySQL没有运行和/或正在侦听不同的端口)

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

答案 1 :(得分:1)

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

答案 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连接),它会一直打开和关闭,并且当网络在很短的时间内关闭时,您的脚本会尝试连接到服务器。

这是与此错误相关的个人经验的猜测答案,可能不准确。

但是如果错误信息是持久的,你真的需要做点什么。