无法连接到数据库服务器
Posted
技术标签:
【中文标题】无法连接到数据库服务器【英文标题】:Could not connect to database server 【发布时间】:2013-10-12 22:35:15 【问题描述】:我将我的网页从旧系统移到新系统,但我现在遇到了与数据库连接的问题。版本是:mysql 5.1.67 和 phpMyadmin 3.4.3.2。问题出在哪里?
在网站上:
警告:mysqli::mysqli() [mysqli.mysqli]: (HY000/2002): 无法通过 / 中的套接字 '/var/lib/mysql/mysql.sock' (2) 连接到本地 MySQL 服务器第 13 行的 home/do031500/www_root/lib/database.inc.php
数据库.inc.php:
class CDatabase
public $Connected = false;
private $Mysqli;
public $Result;
// Connect to database server
function Connect()
global $DatabaseSupport;
if ($DatabaseSupport)
$this->Mysqli = new mysqli(dbServer, dbUser, dbPassword, dbDatabase);
if (mysqli_connect_errno())
$this->Connected = false;
Terminate("Could not connect to database server");
else
$this->Connected = true;
$this->Mysqli->autocommit(FALSE);
$this->Mysqli->set_charset("utf8");
// Disconnect from server
function Disconnect()
if ($this->Connected)
$this->Mysqli->close();
// Execute query
function Query($Query)
$this->Result = false;
if ($this->Connected)
$this->Result = $this->Mysqli->query($Query, MYSQLI_STORE_RESULT);
if (!$this->Result)
Terminate('Invalid query: '.$this->Mysqli->error);
return $this->Result;
// Close query query
function Close($Datalink)
if ($this->Connected)
mysqli_free_result($Datalink);
// Commit
function Commit()
if ($this->Connected)
$this->Mysqli->Commit();
// Rollback
function Rollback()
if ($this->Connected)
$this->Mysqli->Rollback();
// GetRecordCount
function RecordCount($DataLink)
if ($this->Connected)
return $DataLink->num_rows;
else
return 0;
// Get last RecordID
function GetLastRecordID()
if ($this->Connected)
return $this->Mysqli->insert_id;
else
return false;
// Get next line from query
function GetNextLine($Datalink = NULL)
if ($this->Connected)
if ($Datalink != NULL)
$this->Result = $Datalink;
return $this->Result->fetch_array(MYSQL_ASSOC);
// Execute query and return first line
function QueryFirstLine($Query)
if ($this->Connected)
if ($this->Result = $this->Query($Query))
return $this->Result->fetch_array(MYSQL_ASSOC);
// GetField list for current query
function GetFieldList($Datalink = NULL)
if ($this->Connected)
if ($Datalink != NULL)
$this->Result = $Datalink;
//$FieldsCount = $this->Result->field_count;
$List = NULL;
while ($Finfo = $this->Result->fetch_field())
$List[] = $Finfo->name;
return $List;
// encode value
function EncodeValue($Value)
return $Value;
// move item
function MoveItem($SQL, $RecordID, $Forward, $TableName)
$Query = $this->Query($SQL);
while ($Line = $this->GetNextLine($Query))
$List[] .= $Line['RecordID'];
$HasMove = false;
for ($i = 0; $i < count($List); $i++)
if ((!$HasMove) && ($List[$i] == $RecordID))
if ($Forward)
if ($i < count($List)-1)
$a = $List[$i+1];
$List[$i+1] = $List[$i];
$List[$i] = $a;
$i++;
else
if ($i > 0)
$a = $List[$i-1];
$List[$i-1] = $List[$i];
$List[$i] = $a;
$HasMove = true;
$cnt = 1;
foreach ($List as $Key=>$Value)
$this->Query("update $TableName set OrderNo='".$cnt."' where RecordID='$Value'");
$cnt++;
$this->Commit();
【问题讨论】:
dbServer
不是有效的 PHP 变量。使用$
嘿,没有问题。问题是我在文档中更新了关于数据库服务器的信息,其中包含 dbserver 的地址、用户名、密码。现在它正在工作
【参考方案1】:
最初的想法是由于您的连接变量之一。您是否仔细检查过您是否拥有所有新服务器的信息?服务器、端口、用户名、密码、数据库、表?
【讨论】:
我有服务器地址、用户名、数据库和表,但我需要在某处更新吗?还是自动的? (新旧数据库密码不同) 是的...如果您的mysql服务器的密码在服务器之间不同,您需要更新它们。我不知道您在程序中的何处设置这些变量(dbServer、dbUser、dbPassword、dbDatabase),但如果您的新服务器上的设置不同,则需要更改它们。 我找到了。感谢您的帮助 没问题...如果答案有帮助,请将其标记为已接受,以便其他人无法解决他们的问题。以上是关于无法连接到数据库服务器的主要内容,如果未能解决你的问题,请参考以下文章