Python - MySQL Bağlantısı Nasıl Yapılır?

kusha · 03 Ağustos 2026 · 5 dk okuma

Daha önce yerel sqlite3 dosyalarıyla çalışan uygulamalar görmüştük. Bu derste, birden fazla kişinin/uygulamanın aynı anda erişebildiği merkezi bir MySQL sunucusuna Python'dan nasıl bağlanacağımızı göreceğiz.

Kurulum

pip install mysql-connector-python

Bağlantı Kurmak

import mysql.connector

baglanti = mysql.connector.connect(
    host="localhost",
    user="root",
    password="sifreniz",
    database="kusha_db",
)
  • host: MySQL sunucusunun adresi — kendi bilgisayarınızda çalışıyorsanız localhost, uzak bir sunucudaysa o sunucunun IP adresi.
  • user / password: MySQL kullanıcı adı ve şifresi (kurulum sırasında belirlediğiniz).
  • database: bağlanmak istediğiniz veritabanının adı.

Bağlantı bilgileri yanlışsa (ör. şifre hatalıysa), mysql.connector anlamlı bir "Access denied" hatası fırlatır — bu hatayı aldığınızda önce kullanıcı adı/şifreyi kontrol edin.

Sorgu Çalıştırmak

cursor = baglanti.cursor()
cursor.execute("SELECT * FROM kayitlar")

for satir in cursor.fetchall():
    print(satir)

cursor.execute(...) sorguyu çalıştırır, cursor.fetchall() ise tüm sonuç satırlarını bir liste olarak döndürür — her satır, kolon sırasına göre bir demet (tuple) halinde gelir (ör. (1, "Ahmet", 24)).

sqlite3 ile MySQL Arasındaki Sözdizimi Farkları

sqlite3 ve MySQL, ikisi de SQL kullansa da bazı komutlarda farklılık gösterir. Örneğin sqlite3'te sorgu sonuçlarına doğrudan sütun adıyla erişebilirken, mysql-connector-python'da varsayılan olarak sonuçlar sütun indeksine göre gelir (satir[0], satir[1] gibi). Sütun adıyla erişmek isterseniz cursor'ı sözlük modunda açabilirsiniz:

cursor = baglanti.cursor(dictionary=True)
cursor.execute("SELECT * FROM kayitlar")
for satir in cursor.fetchall():
    print(satir["ad"], satir["sirket"])

Sırada Ne Var?

Sırada, bu MySQL bağlantısını bir Telegram botuyla birleştirip, botun MySQL'e kayıt ekleyip listeleyebildiği tam bir uygulama yapacağız.