簡體   English   中英

CakePHP 2無法連接到MySQL數據庫

[英]CakePHP 2 is not able to connect to MySQL database

使用最新的CakePHP 2.0 RC3,我正在嘗試連接到MySQL數據庫。 為此,我更改了app / config目錄中的database.php文件。

該文件包含連接到數據庫所需的以下詳細信息。

class DATABASE_CONFIG {

       public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'db_world',
        'prefix' => ''
       );

}

對於root,我通過設置密碼和使用空白密碼來嘗試。

  • 嘗試使用“root”用戶以及創建具有所需權限的其他用戶。
  • 嘗試用127.0.0.1代替'localhost'
  • 檢查數據庫是否使用普通的PHP腳本連接。

用於測試數據庫連接的普通php腳本如下: -

<?php

   $connect = mysql_connect("127.0.0.1","root","") or die("Could not connect");
   mysql_select_db("db_world") or die("Could not find db");

   echo "hello world";

?>

上面的腳本工作意味着它不是MySQL方面的問題。

我仍然總是得到“Cake無法連接到數據庫”。 目前我不確定我在這里缺少什么。

任何解決問題的指針都會有所幫助。

CakePHP 2.0使用PDO,而不是mysql_connect,我的猜測是沒有安裝PDO MySQL擴展。

您是否可以運行以下腳本來檢查是否可以手動創建連接?

$hostname = "localhost";
$username = "root";
$password = "";

try {
  $db = new PDO("mysql:host=$hostname;dbname=db_world", $username, $password);
  echo "Connected to database";
}
catch(PDOException $e) {
  echo $e->getMessage();
}

檢查您提供的密碼! 我在PDO上搜索一個問題大約一個星期然后我發現我的密碼不正確!! 所以要注意這一點 - 錯誤也是一樣的。

我也面臨這個問題。 這花了我幾個小時才弄明白。 當我啟動一個新的CakePHP 2.0應用程序時,我無法連接到MySQL數據庫。

我終於想通了你必須在php.ini中啟用php_pdo_extension。

以下鏈接可以幫助我解決這個問題

(http://www.cakephpexample.com/uncategorized/cakephp-missing-database-connection/)

通過以下方式首次測試PDO Mysql擴展:

var_dump( extension_loaded('pdo_mysql') );

如果它是假的,對於Windows,只需將這些行添加到PHP.INI:

extension=php_pdo.dll   /* not necessary for PHP v5.3+ */
extension=php_pdo_mysql.dll

參考: http//www.php.net/manual/en/pdo.installation.php

用於編碼和錯誤消息:

try {
    $dns = 'mysql:host=localhost;dbname=db';
    $user = 'user';
    $psswrd = 'pass';
    // Options connection
    $options = array(
        PDO::MYSQL_ATTR_INIT_COMMAND    => "SET NAMES utf8",
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    );
    $connection = new PDO( $dns, $user, $psswrd, $options );

} catch ( Exception $e ) {
    echo "Connection impossible to MySQL : ", $e->getMessage();
    die();
}

祝好運

在Windows上,您應該下載最新版本的WAMP,因為CakePHP 2.x使用PDO並且僅支持mySQL 4.最新版本的Cake支持5.x和PHP 5.2.8或更高版本。 如果你想要它,不要忘記mod_rewrite

在Linux上你應該使用apt-getaptitude

apt-get install apache2 mysql-server php5 ; apt-get install php5-mysql

然后重啟/重新加載apache2

最后不要忘記chmod -R 777 cakephp / app / tmp for cache並填寫訪問你的數據庫的領域(app / Config / database.php)

一些CakePHP項目(例如webzash)有自己的數據庫配置,可以覆蓋app/Config/Database.php 例如,在webzash的情況下,連接是在plugins/Webzash/Config/MasterConfig.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM