2013-01-16 187 views
0

我在連接到mysql服務器時出現問題。我通過Windows的Web安裝程序平臺安裝了帶有iis 7的PHP快速cgi。一切都好,直到我試圖連接MySQL服務器,它總是失敗。這裏是我的代碼:無法連接到MySql

class MySqlDatabase{ 
    private $mysql; 
    private $host; 
    private $username; 
    private $password; 
    private $db_name; 

    function __construct($host, $username, $password, $db_name){ 
     $this->host = $host; 
     $this->username = $username; 
     $this->password = $password; 
     $this->db_name = $db_name; 
    } 
    public function connect(){ 
     $this->mysql = mysql_connect($this->host, $this->username, 
         $this->password) or 
         die("Could not connect to database. ". $this->username . 
         "@" . $this->host . " passwrod: YES!"); 
     if (!mysql_select_db($this->db_name)) die("Cannot select database!"); 
    } 
} 
$database = new MySqlDataBase($host,$username,$password,$db_name); 
$database->connect(); 
+0

檢查你的MySQL用戶名和密碼是正確的 –

+0

我通過通過SQLyog的軟件連接到MySQL服務器檢查用戶名和密碼,一切都很好,我連。我想我有問題關於配置iis也許 – user1982667

+0

它說什麼錯誤? – Sahal

回答

0

你顯然是錯誤的憑據連接到數據庫。 這就是爲什麼你會收到錯誤「無法連接到MySQL」。 檢查您的變量以及您發送的用於連接的用戶名和密碼。

+0

我檢查了它,證書是正確的,我發送正確的憑據到mysql_connect函數 – user1982667

1
  1. 確保您的MySql服務正在運行。
  2. 確保您的憑證是正確的,請嘗試使用MySql Workbench查看您是否有連接。
  3. 確保您的腳本也具有正確的憑據。
  4. 確保您的腳本以運行服務的機器爲目標,例如localhost端口3306,就像MySql Workbench一樣。
+0

我不在本地運行mysql服務,我在遠程服務器上運行它,或者像SQLyog這樣的其他軟件連接 – user1982667

+0

如果您嘗試連接到遠程數據庫服務器:是否已在服務器上打開所需的端口? –

0

嘗試這樣做,不類聲明:

// we connect to localhost at port 3307 
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
echo 'Connected successfully'; 
mysql_close($link); 
+0

我收到消息錯誤:無法連接:mysqlnd無法使用舊的不安全身份驗證連接到MySQL 4.1+。請使用管理工具使用命令SET PASSWORD = PASSWORD('your_existing_password')重置您的密碼。這將在mysql.user中存儲一個新的,更安全的散列值。如果此用戶用於PHP 5.2或更早版本執行的其他腳本,則可能需要從my.cnf文件中刪除舊密碼標記 – user1982667

+0

嘗試重置mysql用戶密碼或在CentOS上重新啓動mysql服務器: /etc/init。 d/mysqld重啓 在Debian上: /etc/init.d/mysql restart – RDK

+0

感謝所有,我解決了我的問題在http://stackoverflow.com/questions/8831183/mysqlnd-cannot-connect-to- MySQL的-4-1-使用最老不安全的認證?answertab =#投票製表頂部 – user1982667