Magento yüklemeye çalıştım, ancak tarayıcıdan magento yüklemeye çalıştığımda Magento kurulumu sırasında " Veritabanı bağlantı hatası " gösteriyor .
Magento yüklemeye çalıştım, ancak tarayıcıdan magento yüklemeye çalıştığımda Magento kurulumu sırasında " Veritabanı bağlantı hatası " gösteriyor .
Yanıtlar:
Her şeyden önce, veritabanı kullanıcı adınızı ve şifrenizi kontrol edin. Bu adıma geçmeden önce, veritabanını MySQL'de önceden kurmuş olmanız gerekir. Bir kullanıcı oluşturmanız ve bu kullanıcıya erişim ayrıcalıkları vermeniz gerekir.
Ardından MySQL sunucu yapılandırmanızı kontrol edin. Varsayılan bağlantı noktası numarası 3306'dır. Ancak, sistem yöneticiniz bunu başka bir şeye değiştirebilir. Veya MAMP / WAMP gibi yazılım paketleri kullanıyorsanız, bağlantı noktası numarası 3306 dışında bir değere ayarlanabilir. Bu durumlarda, bağlantı noktası numarasını Ana Bilgisayar alanına açıkça koymanız gerekir.
Tüm bunlar doğruysa ve hala veritabanı bağlantı hatası varsa, veritabanına erişmek için root hesabını kullanmayı deneyebilirsiniz. Kök çalışırsa, MySQL ayarlarınızdaki ayrıcalıklarla ilgili sorunlar olduğu anlamına gelir. Her ne kadar sunucuya güvenlik riskleri eklediğinden, gelecekteki üretim dağıtımı için root hesabı kullanılması önerilmez.
Bu oldukça eski bir soru ama son zamanlarda karşılaştım ve umarım bu cevap başka birine yardımcı olur. Sorunum, yeni bir WAMP kurulumunun üzerine Magento'nun eski bir sürümüne geldi. MySQL 5.6.1'den beri have_innodb değişkeni kaldırıldı. Ancak, Magento yükleyicisi bu değişkeni kontrol eder ve bulamazsa bir hata atar. Kural dışı durum günlüğünü gerçekten denetlerseniz, veritabanı sunucusunun InnoDB'yi desteklemediğini belirten bir hata görürsünüz. Ancak catch işleyicisinde sadece bu istisnayı günlüğe kaydeder ve genel bir "Veritabanı bağlantı hatası" mesajı atar.
En basit düzeltme, DB'nizin InnoDB'yi desteklediğinden eminseniz, basitçe düzenlemek app\code\core\Mage\Install\Model\Installer\Db.php
, checkDatabase
yöntemi bulmak ve deneyen blokun sonundaki bölümü yorumlamaktır have_innodb
. Normalde, çekirdek dosyaları düzenlemeyi savunmam, ama bu sadece yükleyicinin çalışmasını sağlamak için, bu yüzden yeterince güvenli olduğunu söyleyebilirim.
app/code/core/Mage/Install/Model/Installer/Db.php
checkDatabase($data)
İşlevi bulunBu işlevin sonunda aşağıdaki kod vardır:
Mage::throwException(Mage::helper('install')->__('Database connection error.'));
Aşağıdaki şekilde değiştirin:
Mage::throwException(Mage::helper('install')->__($e->getMessage()));
Magento'yu yüklediğiniz tarayıcınıza gidin, Continue
düğmesini tıklayın
Benim durumumda, aşağıdaki hata iletisini aldım:
Veritabanı sunucusu InnoDB depolama motorunu desteklemez.
Yani, bunu çözmek için, aynı checkDatabase
işlev InnoDB kontrol yorumladı .
// 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.'));
}*/
Bundan sonra Magento'yu kurabildim.
Ne tür bir veritabanı bağlantı hatası olduğu hakkında daha fazla ayrıntı bulmak veya kullanıcı adı ve parolanın doğru olup olmadığını kontrol etmek için bu kodu kullanmaya çalışabilirsiniz.
<?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!";
}
?>
Bu komut dosyasını bir php dosyası olarak kaydedin ve sunucuya yerleştirin. Çıkış bağlantı hatası olacaktır veya hata yoksa çıkış "Bağlantı başarılı!" Olacaktır. "host" - buraya girebilirsiniz "localhost", "user" - burada veritabanı kullanıcı adı, "password" girmelisiniz - burada veritabanı şifresi, "database name" girmelisiniz - burada veritabanı adını girmelisiniz.