2012-03-05 26 views
4

這是我第一次安裝框架,而且我非常無能。在CakePHP中無法使用MySQL

我在OSX 10.7上,我將cakephp框架加載到/Library/WebServer/Documents/cakephp中,我已經能夠加載測試頁面並擺脫一些錯誤和警告。現在我試圖解決這個問題

Warning (2): PDO::__construct() [pdo.--construct]: [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) [CORE/Cake/Model/Datasource/Database/Mysql.php, line 160] 
    Cake is NOT able to connect to the database. 
    Database connection "SQLSTATE[HY000] [2002] No such file or directory" is missing, or could not be created. 

我真的不知道該怎麼做。我已經安裝了MySQL。默認情況下,MySQL PDO是否安裝在OSX上?還是我需要安裝?如果這似乎是問題,我該如何檢查是否已安裝。

更新:

啓用PDO Mysql驅動程序。 另外,phpinfo()爲pro_mysql看起來是這樣的:

Directive      Local Value    Master Value 
pdo_mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock 

然而mysql目錄並不在我的文件系統出現。我應該創建它嗎?或者我需要改變這個路徑?

更新: 我認爲問題是我沒有真正建立一個數據庫。有點愚蠢的我不建立數據庫。

我想我會試圖弄清楚現在。

UPDATE:

終於解決了這個是餅在/var/mysql/mysql.sock尋找Unix套接字到數據庫,但MySQL的是使用插座/tmp/mysql.sock 我通過創建從/var/mysql/mysql.sock符號鏈接固定這個事情到/tmp/mysql.sock

+1

只需用'phpinfo()'函數創建一個簡單的文件並搜索'pdo_mysql'變量。 – 2012-03-05 22:25:37

+1

除了添加符號鏈接外,您可以使用CakePHP的'database.php'中的'unix_socket'字段並將其設置爲'/ tmp/mysql.sock'。 – 2013-04-21 13:58:55

回答

2

它看起來更像是沒有安裝MySQL本身,但PDO庫與您的網絡服務器一起編譯。我不知道如何在OSX檢查這一點,但你可以嘗試checkign此鏈接出:http://www.sequelpro.com/docs/Install_MySQL_on_Mac_OS_X

編輯

登錄到MySQL(mysql -u root -p),並創建databas:

create database cakephp 

然後創建一個新的用戶名/密碼並授予他們訪問此數據庫的權限。比方說,你要創建的用戶名和CakePHP的密碼cakepass:

GRANT ALL ON cakephp.* TO [email protected] IDENTIFIED BY 'cakepass'; 
FLUSH PRIVILEGES; 

現在你的database.php中的配置文件應該是這樣的:

<?php 
class DATABASE_CONFIG { 
    public $default = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host'  => 'localhost', 
     'login'  => 'cakephp', 
     'password' => 'cakepass', 
     'database' => 'cakephp', 
     'prefix'  => '' 
    ); 
} 
+0

我確實安裝了MySql,我想我可能記得給它一個密碼。有沒有需要插入密碼的地方? – wbarksdale 2012-03-05 22:26:47

+1

通常,您將在cakePHP的安裝過程中輸入數據庫中的值(您可能需要在配置文件中更改這些值,但我並沒有這麼做)。要查看您的MySQL服務器是否正在運行,請打開終端並嘗試使用以下命令訪問它:'mysql -u root -p' – 2012-03-05 22:42:26

+0

鍵入'help'或\ h以獲得幫助mysql> | – wbarksdale 2012-03-05 22:53:50

0

不,MySQL不附帶OSX,你將不得不安裝它。

最簡單的解決方案是使用XAMPP,而不是自己編譯/安裝MySQL。如果您不想混淆本地OSX版本,它還會附帶一個單獨的Apache和PHP。

+0

是的,我想安裝我自己的mysql只是爲了學習的經驗。它實際上已安裝,但出於某種原因,它不起作用。 – wbarksdale 2012-03-05 22:36:27

+0

因此,確保服務器正在運行(在活動監視器中查找'mysqld'進程),然後使用mysql登錄憑據和數據庫名稱(首先需要創建數據庫)來設置Cake。 Cake的數據庫配置位於app/config/database.php。 – bfavaretto 2012-03-05 22:42:16