Tôi đã cố gắng cài đặt magento, nhưng khi tôi đang cố gắng cài đặt magento từ trình duyệt, nó hiển thị " Lỗi kết nối cơ sở dữ liệu " trong khi cài đặt Magento.
Tôi đã cố gắng cài đặt magento, nhưng khi tôi đang cố gắng cài đặt magento từ trình duyệt, nó hiển thị " Lỗi kết nối cơ sở dữ liệu " trong khi cài đặt Magento.
Câu trả lời:
Trước hết, kiểm tra tên người dùng và mật khẩu cơ sở dữ liệu của bạn. Trước khi bạn tiến hành bước này, bạn đã thiết lập cơ sở dữ liệu trong MySQL. Bạn cần tạo một người dùng và cấp đặc quyền truy cập cho người dùng đó.
Sau đó kiểm tra cấu hình máy chủ MySQL của bạn. Số cổng mặc định là 3306. Tuy nhiên, quản trị viên hệ thống của bạn có thể thay đổi nó thành một số khác. Hoặc nếu bạn đang sử dụng các gói phần mềm như MAMP / WAMP, số cổng có thể được đặt thành một số khác ngoài 3306. Trong những trường hợp này, bạn cần đặt rõ ràng số cổng vào trường Máy chủ.
Nếu tất cả những điều này là chính xác và bạn vẫn có lỗi kết nối cơ sở dữ liệu, bạn có thể thử sử dụng tài khoản root để truy cập cơ sở dữ liệu. Nếu root hoạt động, điều đó có nghĩa là có vấn đề với các đặc quyền trong cài đặt MySQL của bạn. Mặc dù không nên sử dụng tài khoản root để triển khai sản xuất trong tương lai vì nó làm tăng rủi ro bảo mật cho máy chủ.
Đây là một câu hỏi khá cũ nhưng tôi đã bắt gặp nó gần đây và tôi hy vọng câu trả lời này sẽ giúp người khác. Vấn đề của tôi thuộc về phiên bản cũ của Magento trên bản cài đặt WAMP mới. Kể từ MySQL 5.6.1, biến have_innodb đã bị xóa. Tuy nhiên, trình cài đặt Magento kiểm tra biến đó và đưa ra lỗi nếu nó không tìm thấy. Nếu bạn thực sự kiểm tra nhật ký ngoại lệ, bạn sẽ thấy một lỗi mà máy chủ cơ sở dữ liệu không hỗ trợ InnoDB. Tuy nhiên, trong trình xử lý bắt, nó chỉ ghi lại ngoại lệ đó và đưa ra một thông báo "Lỗi kết nối cơ sở dữ liệu" chung chung.
Cách khắc phục đơn giản nhất, nếu bạn chắc chắn rằng DB của bạn hỗ trợ InnoDB, chỉ đơn giản là chỉnh sửa app\code\core\Mage\Install\Model\Installer\Db.php
, tìm checkDatabase
phương thức và nhận xét phần ở cuối khối thử kiểm tra have_innodb
. Thông thường, tôi sẽ không ủng hộ việc chỉnh sửa các tệp lõi, nhưng điều này chỉ để trình cài đặt hoạt động, vì vậy tôi nói rằng nó đủ an toàn.
app/code/core/Mage/Install/Model/Installer/Db.php
checkDatabase($data)
hàmỞ cuối chức năng này, có đoạn mã sau:
Mage::throwException(Mage::helper('install')->__('Database connection error.'));
Thay đổi nó thành như sau:
Mage::throwException(Mage::helper('install')->__($e->getMessage()));
Truy cập trình duyệt của bạn, nơi bạn đang cài đặt Magento, nhấp vào Continue
nút
Trong trường hợp của tôi, tôi nhận được thông báo lỗi sau:
Máy chủ cơ sở dữ liệu không hỗ trợ công cụ lưu trữ InnoDB.
Vì vậy, để giải quyết vấn đề này, tôi đã nhận xét kiểm tra InnoDB trong cùng checkDatabase
chức năng.
// check InnoDB support
/*if (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') {
Mage::throwException(Mage::helper('install')->__('Database server does not support the InnoDB storage engine.'));
}*/
Sau đó, tôi đã có thể cài đặt Magento.
Bạn có thể thử sử dụng mã này để tìm thêm chi tiết về loại lỗi kết nối cơ sở dữ liệu hoặc kiểm tra xem tên người dùng và mật khẩu có đúng không
<?php
$mysqli=mysqli_connect("host","user","password","database name");
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
echo "Connection succesfull!";
}
?>
Lưu tập lệnh này dưới dạng tệp php và đặt nó trên máy chủ. Đầu ra sẽ là lỗi kết nối hoặc nếu không có lỗi thì đầu ra sẽ là "Kết nối thành công!". "máy chủ" - bạn có thể nhập vào đây "localhost", "người dùng" - tại đây bạn phải nhập tên người dùng cơ sở dữ liệu, "mật khẩu" - ở đây bạn phải nhập mật khẩu cơ sở dữ liệu, "tên cơ sở dữ liệu" - ở đây bạn phải nhập tên cơ sở dữ liệu.