Resim

MySQL Create Database (Veritabanı Oluşturmak)

MySQL Create Database (Veritabanı Oluşturmak)

Veritabanı işlemleri yapmaya başlamadan önce, Python uygulamamız ile MySQL sunucusu arasında bir köprü kurmamız gerekir. Bu bağlantı, veritabanına veri göndermemizi ve ondan veri almamızı sağlar. Bu bölümde, mysql.connector kütüphanesini kullanarak sunucuya nasıl bağlanacağımızı, temel bağlantı bilgilerini nasıl yöneteceğimizi ve ilk veritabanımızı (python_proje) nasıl oluşturacağımızı adım adım göreceğiz. Bağlantı bilgilerinin gizliliğini korumak ve olası bağlantı hatalarını (özellikle parola hatalarını) zarifçe yönetmek de önemlidir. Yeni bir Python dosyası oluşturalım (Örneğin: create_db.py) ve başlayalım.

import mysql.connector

CONFIG = {
    "host": "localhost",
    "user": "root",
    "password": "python-mysql123" # Parolanızı buraya yazın
   }

try:
    # 1. Sunucuya Bağlanma
    mydb = mysql.connector.connect(
    host=CONFIG["host"],
    user=CONFIG["user"],
    password=CONFIG["password"]
)

    # 2. Cursor Oluşturma (Sorguları çalıştırmak için)
    mycursor = mydb.cursor()
    # 3. Veritabanı Oluşturma Sorgusunu Çalıştırmak
    mycursor.execute("CREATE DATABASE IF NOT EXISTS python_proje ")
    print("Veritabanı başarıyla oluşturuldu.")

except mysql.connector.Error as err:
    # Bağlantı hatalarını, parola hatalarını (1045) veya genel hataları     # yakalar
    print(f"Bir hata oluştu: {err}")
    print("Lütfen CONFIG dosyasındaki bilgileri veya sunucu durumunu kontrol edin.")

finally:
    # Hata olsa da olmasa da bağlantıları temizce kapat
    
# Cursor objesi var mı diye kontrol et
    if 'mycursor' in locals() and mycursor: 
        mycursor.close()
    
# Bağlantı aktif mi diye kontrol et
    if 'mydb' in locals() and mydb.is_connected(): 
        mydb.close()
        print("Bağlantılar sonlandırıldı.")

Kodun Açıklaması

Bu kod bloğu, MySQL veritabanı işlemlerinin temelini oluşturan bağlantı kurma ve ilk veritabanını oluşturma adımlarını içerir.

  1. İmleç Oluşturma (mydb.cursor): Cursor (İmleç), SQL sorgularını veritabanına göndermek ve sonuçları geri almak için kullanılan temel araçtır. Tüm sorgular mycursor nesnesi üzerinden çalıştırılır.

  2. Sorgu Çalıştırma (mycursor.execute): Buradaki execute metodu, CREATE DATABASE IF NOT EXISTS python_proje SQL sorgusunu çalıştırır. IF NOT EXISTS ifadesi, aynı isimde bir veritabanı zaten varsa hata vermesini önler.

  3. Bağlantıları Kapatma (finally): Programın başarılı olması veya hata vermesi fark etmeksizin, finally bloğu çalışır. Bu blok, mycursor.close() ve mydb.close() komutlarıyla veritabanı bağlantılarını temiz ve düzenli bir şekilde sonlandırır. Bu, kaynak sızıntılarını önlemek için kritik bir adımdır.

  4. Cursor (İmleç) Kapatma Kontrolü:

    if 'mycursor' in locals() and mycursor: 
        mycursor.close()
    
    • if 'mycursor' in locals(): Bu kontrol, mycursor adında bir değişkenin mevcut çalışma alanında (locals()) tanımlanıp tanımlanmadığını kontrol eder. Örneğin, veritabanı bağlantısı kurulamazsa, mycursor değişkeni hiçbir zaman oluşmayacaktır.

    • and mycursor: Değişkenin var olmasının yanı sıra, bu değişkenin None veya boş bir değer olmadığından emin olur.

    • mycursor.close(): Eğer imleç değişkeni varsa ve geçerliyse, imleci kapatır ve serbest bırakır.

  5. Veritabanı Bağlantısı Kapatma Kontrolü:

    if 'mydb' in locals() and mydb.is_connected(): 
        mydb.close()
        print("Bağlantılar sonlandırıldı.")
    
    • if 'mydb' in locals(): Aynı şekilde, önce mydb adında bir bağlantı nesnesinin oluşup oluşmadığını kontrol eder.

    • and mydb.is_connected(): En önemli kontrol budur. Bağlantı nesnesi oluşsa bile, bağlantının halen aktif ve açık olup olmadığını kontrol eder. Bir bağlantı zaten kapalıysa, onu tekrar kapatmaya çalışmak hata verebilir. Bu kontrol bu tür hataları önler.

📹ÖĞRENDİKLERİNİZİ PEKİŞTİRİN:
Hemen aşağıdaki videomuza tıklayın. Adım adım ilerleyerek öğrendiklerinizi görsel olarak pekiştirin ve bir sonraki konuya hatasız bir şekilde geçin!



Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?