2009-07-12 27 views
9

Tôi đang cố gắng tải ứng dụng ZEND của mình lên máy chủ apache chạy trên UNIX. Ban đầu chủ của tôi didnot cung cấp hỗ trợ PDO, và tôi đã nhận nó được kích hoạt bằng cách yêu cầu họ với một mail.But bây giờ tôi nhận được một lỗi nói Người tài xế mysql hiện chưa được cài đặtLỗi trình điều khiển MySql chưa được cài đặt cho ứng dụng Zend

Các vết đống giống như:

An error occurred 
Application error 
Exception information: 

Message: The mysql driver is not currently installed 
Stack trace: 

#0 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#1 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('aaditya258', NULL) 
#2 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'aaditya258') 
#3 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect() 
#4 /home/windchim/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate() 
#5 /home/windchim/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable)) 
#6 /home/windchim/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction() 
#7 /home/windchim/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction') 
#8 /home/windchim/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#9 /home/windchim/public_html/worm/index.php(47): Zend_Controller_Front->dispatch() 
#10 {main} 

Cách này có thể được giải quyết? Vui lòng giúp

Trả lời

16

PDO, không giống như hàm mysql_ *, hỗ trợ một số công cụ cơ sở dữ liệu. Để làm điều này, nó cần một thư viện trình điều khiển cho mỗi một.

Bạn có "lõi" của PDO được cài đặt nhưng không phải là trình điều khiển MySQL - chỉ cần cài đặt đó (gọi là pdo_mysql) và mọi thứ sẽ ổn.

php.ini của bạn nên có một trong những (cửa sổ hoặc linux):

extension=php_pdo_mysql.dll 
extension=php_pdo_mysql.so 
+0

Tôi có cần phải cài đặt một thứ gì đó hoặc chỉ một mục nhập vào php.ini không? – Arc

+1

@Arkid: Nhà cung cấp dịch vụ lưu trữ của bạn có thể sẽ cần phải cài đặt mô-đun trình điều khiển PDO riêng biệt và đảm bảo rằng nó được bật trong cấu hình PHP. – Rob

+0

Nếu bạn đang thêm phần mở rộng trong một tệp theo cách thủ công, hãy nhớ tải pdo.so trước pdo_mysql.so, nếu không nó sẽ không hoạt động. –

4

Trong file php.ini u chỉ cho phép sau dòng extension = php_pdo_mysql.dll (có nghĩa là loại bỏ bình luận trước đó)

thì nó sẽ được thực hiện đúng.

4

Như những người khác đã đề cập, bạn cần bật tiện ích mở rộng pdo_mysql.

Tuy nhiên, chạy php (5.3) làm mô-đun apache (2.2) trên máy của tôi (cửa sổ 7), nó vẫn không hoạt động. Tôi đã tìm ra giá trị extension_dir trong php.ini cần được đặt bằng cách sử dụng đường dẫn tuyệt đối tuyệt đối (tương đối không hoạt động)!

Hy vọng điều này sẽ giúp một số bạn!

-1

F.i. kiểm tra chính tả của error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT (nên như thế này ở giai đoạn sản xuất)

Nếu bạn gõ error_reporting (giá trị); hoặc một cái gì đó như thế này (thường là để thử nghiệm, "giá trị" có thể là "0")

bạn có thể nhận sai lầm này "Người tài xế mysql hiện chưa được cài đặt" nếu bạn sử dụng

Vì vậy, bất kỳ lỗi cú pháp trong php.ini có thể tạo ra lỗi này. Nếu bạn thiết lập hệ thống của mình một cách cẩn thận, bạn có thể bị nhầm lẫn một cách dễ dàng, bởi vì bạn biết đấy, không có lỗi khi cài đặt hoặc cài đặt db. Nếu bất cứ điều gì khác là chính xác, do đó, đi cho một lỗi cú pháp trong php.ini.

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