2014-10-20 68 views
0

由於某些原因,爲什麼我嘗試使用doctrine連接到本地mysql數據庫。我得到以下錯誤:PDO_mysql不能與doctrine2和MAMP一起工作

Could not create database for connection named `new_db` could not find driver 

我的phpinfo文件告訴我,PDO_MYSQL運行,是38年5月5日版本,這裏理應位於:/Applications/MAMP/tmp/mysql/mysql.sock(不過,我可以在該目錄下找不到mysql.sock)。

php.ini文件根據PHP信息文件位於:

Configuration File (php.ini) Path /Applications/MAMP/bin/php/php5.6.1/conf 
Loaded Configuration File /Library/Application Support/appsolute/MAMP PRO/conf/php.ini 

我的命令行(已配置爲指向同一個版本的PHP作爲MAMP(理論上)指出,它使用的是以下的php.ini

Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.1/conf 
Loaded Configuration File:   /Applications/MAMP/bin/php/php5.6.1/conf/php.ini 

我不確定爲什麼的phpinfo都有不同的「加載配置文件」項,我不知道這是一個問題,但我不知道該如何改變這種狀況。有趣的是儘管這兩個文件都聲明應該加載pdo_mysql,

煩人,儘管所有的php.ini文件,我可以找到指出PDO_MYSQL,當我鍵入php -m | grep -G PDO -i加載我只看到:

PDO 
pdo_sqlite 

我不知所措,爲什麼PDO_MYSQL不加載,因爲它真的看起來應該是。

我在Mac OSx Yosemite上運行MAMP Pro。

編輯:按照要求,這裏是連接字符串是自動生成的symfony的:

{ parameters: { database_driver: pdo_mysql, database_host: 127.0.0.1, database_port: 3306, database_name: new_db, database_user: dbuser, database_password: dbpass, mailer_transport: smtp, mailer_host: 127.0.0.1, mailer_user: null, mailer_password: null, locale: en, secret: thisisnotmysecret, debug_toolbar: true, debug_redirects: false, use_assetic_controller: true, database_path: null } } 

更新:

[20-Oct-2014 17:15:44 Europe/London] PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20121212/pdo_mysql.so' - dlopen(/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20121212/pdo_mysql.so, 9): image not found in Unknown on line 0

:嘗試無我有以下錯誤的框架連接後

這是令人生氣的,因爲它應該指向的文件夾是「no-debug-non-zts-20131226」而不是「no-debug-non-zts-20121212」有誰知道如何更新這個路徑?

+0

「爲連接名爲'new_db'」。聽起來像你的PDO連接字符串不正確。改爲顯示該代碼。 – 2014-10-20 16:23:58

+0

這似乎是正確的;在Doctrine方面有沒有加載PDO的設置?嘗試創建一個基本的PHP腳本,該腳本使用沒有框架或教條的PDO進行故障排除。 – unixmiah 2014-10-20 16:25:00

回答

0

原來,Mamp pro的默認php.ini文件是錯誤的。它認爲擴展目錄應該是:

下extension_dir = 「/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20121212/」

當它實際上應該已經:

下extension_dir = 「/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20131226/」

我更新該文件,現在它像一個魅力:)