无法连接到数据库服务器

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),但如果您的新服务器上的设置不同,则需要更改它们。 我找到了。感谢您的帮助 没问题...如果答案有帮助,请将其标记为已接受,以便其他人无法解决他们的问题。

以上是关于无法连接到数据库服务器的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER2008无法连接到服务器

Tableau怎么连接到数据?

如何解决SQL Server 2008 无法连接到

SQL数据库连接到服务器出错——无法连接到XXX

无法连接到数据库服务器(mysql 工作台)

无法连接到数据库服务器 mysql 工作台