2010-10-01 23 views
9

Tôi đang làm việc trên sổ tay hướng dẫn của symfony và tôi gặp vấn đề khi kết nối cơ sở dữ liệu với cơ sở dữ liệu MySQL thông qua học thuyết. Môi trường phát triển: Mac OS X và XAMPP.Không có kết nối cơ sở dữ liệu qua doctrine trong symfony

Lệnh php symfony doctrine:build-schema mang lại cho tôi thông báo lỗi sau:

Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/xx/projects/myproject/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470
PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory

Các thiết lập cơ sở dữ liệu trong database.yml:

all: 
    doctrine: 
    class: sfDoctrineDatabase 
    param: 
     dsn: 'mysql:host=localhost;dbname=my_project_db' 
     username: root 
     password: root 

MySQL đang chạy. Tên người dùng và mật khẩu là chính xác. Cơ sở dữ liệu 'my_project_db' tồn tại.

Ai đó có thể cho tôi gợi ý điều gì đang xảy ra không?

+0

Tệp /var/mysql/mysql.sock có tồn tại không? Hãy thử tìm tập tin đó bằng cách sử dụng xác định vị trí nếu không. – greg0ire

+0

có. đó là một tệp rỗng trong/Applications/XAMPP/xamppfiles/var/mysql/ – skanne

Trả lời

14

Cố gắng tạo ra một liên kết tượng trưng trong /var/mysql-mysql.sock của bạn:

sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql /var/mysql 
+0

thx. Điều đó hoạt động. – skanne

+0

sudo ln -s/Ứng dụng/XAMPP/xamppfiles/var/mysql/var/mysql – anggriawan

+0

@anggriawan: cảm ơn gợi ý –

3

tôi đã cùng một vấn đề trên mac táo của tôi và đã làm như sau:

cd /var; sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/ mysql 

Làm việc cho tôi.

12

Hoặc với MAMP

cd /var; sudo ln -s /Applications/MAMP/tmp/mysql mysql 
3

Trên Mac OSX Lion:

cd /var; 
sudo mkdir mysql; cd mysql; 
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock 
1

Tình trạng này cũng xảy ra với tôi và tôi sử dụng MAMP Pro. Nếu bạn sử dụng MAMP Pro, giá trị của nó sẽ kiểm tra cửa sổ chính. Hãy xem tab "MySQL" và sau đó xem hộp kiểm "Chỉ cho phép truy cập cục bộ". Nếu nó được chọn, bạn nên bỏ chọn nó. Cuối cùng, nhấp vào nút "Áp dụng".

Các vấn đề liên quan