2015-04-02 43 views
5

我試圖與WT-NMP安裝CakePHP的3.0.0,但我得到這個消息:CakePHP的3無法連接到數據庫由於缺少PHP擴展

CakePHP是不能連接到數據庫。

數據庫驅動程序蛋糕\數據庫\驅動程序\ MySQL不能由於使用的 失蹤PHP擴展或者未滿足的依賴

我的php.ini有這樣的:

extension = php_bz2.dll 
extension = php_curl.dll 
extension = php_gd2.dll 
extension = php_imap.dll 
extension = php_mbstring.dll 
extension = php_exif.dll 
extension = php_mysql.dll 
extension = php_mysqli.dll 
extension = php_pdo_mysql.dll 
extension = php_pdo.dll 
extension = php_soap.dll 
extension = php_sockets.dll 
extension = php_sqlite3.dll 
extension = php_openssl.dll 
extension = php_fileinfo.dll 
extension = php_intl.dll 

的app.php有這個

'default' => [ 
     'className' => 'Cake\Database\Connection', 
     'driver' => 'Cake\Database\Driver\Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     /** 
     * CakePHP will use the default DB port based on the driver selected 
     * MySQL on MAMP uses port 8889, MAMP users will want to uncomment 
     * the following line and set the port accordingly 
     */ 
     'port' => '3306', 
     'username' => 'root', 
     'password' => '', 
     'database' => 'test', 
     'encoding' => 'utf8', 
     'timezone' => 'UTC', 
     'cacheMetadata' => true, 

我錯過了什麼?或者這是cakePHP 3.0的bug?或者任何與WT-NMP有關的事情。 我一直堅持了整整一天。

回答

8

靠運氣解決了這個!:

extension = php_intl.dll 
extension = php_pdo_mysql.dll 
intl.default_locale = en_utf8 
intl.error_level = E_WARNING 
+0

LeDuyKhanh謝謝。 – Chinmay235 2016-05-23 05:41:51

+2

請解釋更多步驟。 – 2016-12-12 09:24:55

3

錯誤信息是因爲extension = php_pdo_mysql.dll未安裝和啓用php.ini的。如果您沒有啓用php_intl.dll,您將在檢查數據庫連接之前收到錯誤。

您的php.ini表示您啓用了php_pdo_mysql.dll,但可能是您需要重新啓動CakePHP serverbin/cake server

1

不要只依賴php.ini閱讀。只要檢查你是否安裝了php [v] -mysql擴展。您可以檢查基於Windows的服務器中的php擴展目錄(最可能是<path to your php installation>/ext)中是否存在php_mysql.dll。在linux中,您可以使用以下命令檢查它是否已安裝。

yum list installed | grep php 

它會列出所有安裝的php擴展。

0

試試這個:

對於PHP 7.0

sudo apt-get install php7.0-mysql 

對於PHP 5:

sudo apt-get install php5-mysql