ข้อผิดพลาดการเชื่อมต่อฐานข้อมูล การติดตั้ง magento


10

ฉันพยายามติดตั้งคุณภาพเยี่ยม แต่เมื่อฉันพยายามติดตั้งคุณภาพเยี่ยมจากเบราว์เซอร์จะแสดง " ข้อผิดพลาดการเชื่อมต่อฐานข้อมูล " ระหว่างการติดตั้ง Magento

ป้อนคำอธิบายรูปภาพที่นี่


คุณต้องสร้างฐานข้อมูลใน phpmyadmin และให้ชื่อผู้ใช้และรหัสผ่าน
Akhilesh Patel

คำตอบ:


9

ก่อนอื่นตรวจสอบชื่อผู้ใช้ฐานข้อมูลและรหัสผ่านของคุณ ก่อนที่คุณจะดำเนินการตามขั้นตอนนี้คุณควรตั้งค่าฐานข้อมูลใน MySQL เรียบร้อยแล้ว คุณต้องสร้างผู้ใช้และให้สิทธิ์การเข้าถึงแก่ผู้ใช้นั้น

จากนั้นตรวจสอบการกำหนดค่าเซิร์ฟเวอร์ MySQL ของคุณ หมายเลขพอร์ตเริ่มต้นคือ 3306 อย่างไรก็ตามผู้ดูแลระบบของคุณอาจเปลี่ยนเป็นอย่างอื่น หรือหากคุณกำลังใช้ซอฟต์แวร์แพ็กเกจเช่น MAMP / WAMP หมายเลขพอร์ตอาจถูกตั้งค่าเป็นอย่างอื่นที่ไม่ใช่ 3306 ในกรณีนี้คุณต้องใส่หมายเลขพอร์ตอย่างชัดเจนในฟิลด์โฮสต์

หากสิ่งเหล่านี้ถูกต้องและคุณยังคงมีข้อผิดพลาดในการเชื่อมต่อฐานข้อมูลคุณสามารถลองใช้บัญชีรูทเพื่อเข้าถึงฐานข้อมูล หากรูททำงานได้แสดงว่ามีปัญหากับสิทธิ์ในการตั้งค่า MySQL ของคุณ แม้ว่าจะไม่แนะนำให้ใช้บัญชีรูทสำหรับการปรับใช้การผลิตในอนาคตเนื่องจากเป็นการเพิ่มความเสี่ยงด้านความปลอดภัยให้กับเซิร์ฟเวอร์


ยังคงมีข้อผิดพลาดการเชื่อมต่อฐานข้อมูล
Darshan Patel

5

นี่เป็นคำถามที่ค่อนข้างเก่า แต่เมื่อไม่นานมานี้ฉันหวังว่าคำตอบนี้จะช่วยคนอื่นได้ ปัญหาของฉันลงมาเป็น Magento รุ่นเก่าที่อยู่ด้านบนของการติดตั้ง WAMP ใหม่ ตั้งแต่ MySQL 5.6.1 ตัวแปร has_innodb ได้ถูกลบออก อย่างไรก็ตามตัวติดตั้ง Magento จะตรวจสอบตัวแปรนั้นและส่งข้อผิดพลาดหากไม่พบ หากคุณตรวจสอบบันทึกข้อยกเว้นคุณจะเห็นข้อผิดพลาดที่เซิร์ฟเวอร์ฐานข้อมูลไม่รองรับ InnoDB แต่ในตัวจัดการ catch มันบันทึกเฉพาะข้อยกเว้นนั้นและส่งข้อความ "ข้อผิดพลาดการเชื่อมต่อฐานข้อมูล" ทั่วไป

การแก้ไขที่ง่ายที่สุดถ้าคุณแน่ใจว่าฐานข้อมูลของคุณสนับสนุน InnoDB, ก็คือการแก้ไขapp\code\core\Mage\Install\Model\Installer\Db.phpหาวิธีการและแสดงความคิดเห็นออกมาเป็นส่วนหนึ่งในตอนท้ายของบล็อกลองที่ตรวจสอบcheckDatabase have_innodbโดยปกติฉันจะไม่สนับสนุนการแก้ไขไฟล์หลัก แต่นี่เป็นเพียงการทำให้ตัวติดตั้งทำงานได้ดังนั้นฉันจึงบอกว่ามันปลอดภัยพอ


4

สร้าง db ก่อน http://localhost/phpmyadmin

สมมติว่าชื่อ DB: testdb

หน้าการกำหนดค่าชื่อ db: testdb ชื่อผู้ใช้: รหัสผ่าน root: ว่างเปล่า (ไม่ต้องป้อนค่าใด ๆ )


4
  • ไปที่ app/code/core/Mage/Install/Model/Installer/Db.php
  • ค้นหาcheckDatabase($data)ฟังก์ชั่น
  • ในตอนท้ายของฟังก์ชั่นนี้มีรหัสต่อไปนี้:

    Mage::throwException(Mage::helper('install')->__('Database connection error.'));
  • เปลี่ยนเป็นสิ่งต่อไปนี้:

    Mage::throwException(Mage::helper('install')->__($e->getMessage()));
  • ไปที่เบราว์เซอร์ที่คุณกำลังติดตั้ง Magento คลิกContinueปุ่ม

  • ตอนนี้คุณควรเห็นข้อความแสดงข้อผิดพลาดที่เหมาะสม

ในกรณีของฉันฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

เซิร์ฟเวอร์ฐานข้อมูลไม่รองรับเอนจินการเก็บข้อมูล InnoDB

ดังนั้นเพื่อแก้ปัญหานี้ฉันให้ความเห็นเช็คอินของ InnoDB ในcheckDatabaseฟังก์ชั่นเดียวกัน

// 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.'));
}*/

หลังจากนั้นฉันสามารถติดตั้ง Magento ได้


1

คุณสามารถลองใช้รหัสนี้เพื่อค้นหารายละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดในการเชื่อมต่อฐานข้อมูลชนิดใดหรือตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านถูกต้องหรือไม่

<?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!";
      }
?>

บันทึกสคริปต์นี้เป็นไฟล์ php และวางไว้บนเซิร์ฟเวอร์ เอาต์พุตจะเป็นข้อผิดพลาดในการเชื่อมต่อหรือหากไม่มีข้อผิดพลาดเอาต์พุตจะเป็น "Connection สำเร็จ!" "host" - คุณสามารถป้อนที่นี่ "localhost", "user" - ที่นี่คุณต้องป้อนชื่อผู้ใช้ฐานข้อมูล "รหัสผ่าน" - ที่นี่คุณต้องป้อนรหัสผ่านฐานข้อมูล "ชื่อฐานข้อมูล" - ที่นี่คุณต้องป้อนชื่อฐานข้อมูล


0
  1. คุณได้ให้ชื่อฐานข้อมูลเป็น magento
  2. ดังนั้นโปรดตรวจสอบว่าคุณได้สร้างฐานข้อมูลชื่อวีโอไอพีนั้นหรือไม่
  3. ถ้าไม่คุณต้องสร้างฐานข้อมูลเปล่าที่เรียกว่าmagentoก่อน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.