Arkadaşlar merhaba, PHP'de PDO kullanarak veritabanı bağlantısı kurmaya çalışıyorum ama bir türlü başaramadım. MySQL veritabanıma localhost üzerinden bağlanmak istiyorum. Kullandığım kod şu şekilde:
$host = 'localhost';
$dbname = 'testdb';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Bağlantı başarılı";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
Ama çalıştırdığımda "SQLSTATE[HY000] [2002] Connection refused" hatası alıyorum. XAMPP kullanıyorum ve Apache ile MySQL çalışıyor, phpMyAdmin'den veritabanına erişebiliyorum. Acaba bağlantı parametrelerinde mi bir sorun var yoksa PDO için özel bir ayar mı yapmam gerekiyor? Aynı kod daha önce başka bir bilgisayarda çalışmıştı ama burada takıldı.
Bu hatayı araştırdığımda genelde MySQL sunucusunun dinleme yaptığı portla ilgili bir sorun olduğunu okudum. XAMPP'de MySQL varsayılan olarak 3306 portunda çalışıyor diye biliyorum ama belki başka bir servis bu portu işgal etmiş olabilir mi? Ya da localhost'u 127.0.0.1 olarak değiştirmek işe yarar mı? Bir de PHP sürümüm 8.1, PDO sürücülerinin yüklü olduğundan eminim çünkü phpinfo() çıktısında PDO ve MySQL sürücülerini görebiliyorum.
Sizce sorun nereden kaynaklanıyor olabilir? Daha önce benzer bir hatayla karşılaşan oldu mu? Özellikle XAMPP kullanan arkadaşların önerilerine açığım. Ayrıca bağlantı dizesinde port belirtmek için $port = '3306'; ekleyip "mysql:host=$host;port=$port;dbname=$dbname" şeklinde denemeli miyim? Bir de hata loglarını kontrol etmek için XAMPP'in MySQL log dosyasına baktım ama anlamlı bir şey göremedim. Yardımcı olursanız sevinirim, bu işi çözmek için kafayı yemek üzereyim.
$host = 'localhost';
$dbname = 'testdb';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Bağlantı başarılı";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
Ama çalıştırdığımda "SQLSTATE[HY000] [2002] Connection refused" hatası alıyorum. XAMPP kullanıyorum ve Apache ile MySQL çalışıyor, phpMyAdmin'den veritabanına erişebiliyorum. Acaba bağlantı parametrelerinde mi bir sorun var yoksa PDO için özel bir ayar mı yapmam gerekiyor? Aynı kod daha önce başka bir bilgisayarda çalışmıştı ama burada takıldı.
Bu hatayı araştırdığımda genelde MySQL sunucusunun dinleme yaptığı portla ilgili bir sorun olduğunu okudum. XAMPP'de MySQL varsayılan olarak 3306 portunda çalışıyor diye biliyorum ama belki başka bir servis bu portu işgal etmiş olabilir mi? Ya da localhost'u 127.0.0.1 olarak değiştirmek işe yarar mı? Bir de PHP sürümüm 8.1, PDO sürücülerinin yüklü olduğundan eminim çünkü phpinfo() çıktısında PDO ve MySQL sürücülerini görebiliyorum.
Sizce sorun nereden kaynaklanıyor olabilir? Daha önce benzer bir hatayla karşılaşan oldu mu? Özellikle XAMPP kullanan arkadaşların önerilerine açığım. Ayrıca bağlantı dizesinde port belirtmek için $port = '3306'; ekleyip "mysql:host=$host;port=$port;dbname=$dbname" şeklinde denemeli miyim? Bir de hata loglarını kontrol etmek için XAMPP'in MySQL log dosyasına baktım ama anlamlı bir şey göremedim. Yardımcı olursanız sevinirim, bu işi çözmek için kafayı yemek üzereyim.