MySQL Beklenmedik Bir Şekilde Kapatıldı: XAMPP MySQL Hatası Nasıl Çözülür?

Yayınlanan: 2024-03-21

Çalışma zamanı hataları hem canlı sunucu kullanıcıları hem de yerel sunucu kullanıcıları arasında yaygındır. "MySQL'in beklenmedik bir şekilde kapanması" birçok geliştiricinin, mühendisin ve veritabanı yöneticisinin XAMPP'yi yerel geliştirme ortamı olarak kullanırken karşılaştığı bir mesajdır. Bu durum can sıkıcı olabilir ancak nadir görülen bir sorun değildir. İyi haber şu ki, düzeltilebilir. Burada arkanı kolladık.

Bu kılavuzumuzda neden “MySQL beklenmedik bir şekilde kapanıyor” mesajını aldığınız ve bu XAMPP MySQL hatasını nasıl çözebileceğinizden bahsedeceğiz.

Sorunun kökenlerini tartışarak başlamak önemlidir. Ama önce XAMPP hakkında daha fazla bilgi edelim.

MySQL beklenmedik şekilde kapanıyor. XAMPP MySQL hatası.

XAMPP'nin Temellerini Anlamak

XAMPP aslında ücretsiz ve açık kaynaklı, çapraz platformlu bir web sunucusu çözüm paketidir. Yerel web sunucusu ortamını oluşturmak ve yönetmek için Windows, macOS ve Linux gibi farklı işletim sistemlerinde çalışır.

XAMPP, kullanıcının yeni özellikleri kolayca test etmesine, kodda hata ayıklamasına ve projenizin farklı ortamlarda sorunsuz bir şekilde çalıştığından emin olmasına olanak tanır. XAMPP ayrıca WordPress web sitenizi çalıştırmak için gerekli yazılımı kurmanıza da izin verecektir.

Bu onu geliştiriciler arasında, özellikle de WordPress gibi PHP tabanlı uygulamalarla çalışanlar arasında popüler bir seçim haline getiriyor.

XAMPP'nin anlamı şudur:

X: Platformlar arası,

C: Apache HTTP Sunucusu, popüler bir web sunucusu yazılımı.

M: MariaDB (orijinal olarak MySQL), web sitesi verilerini depolamak için bir veritabanı yönetim sistemi.

P: PHP, dinamik web içeriği geliştirmek için kullanılan bir kodlama dilidir.

P: Perl, web geliştirme ve diğer görevler için kullanılabilecek bir programlama dili.

Sistemi daha iyi anlayarak bu hatanın nedenlerini tartışalım.

XAMPP'de MySQL Kapatma Hatasına Giriş

XAMPP hatası "MySQL beklenmedik şekilde kapanıyor", geliştirme ortamınızdaki MySQL hizmetinin çalışmayı durdurduğunu gösterir. MySQL'i manuel olarak durdurmanıza gerek yok. Bunu çeşitli nedenlerden dolayı yapabilirsiniz; örneğin sunucunun yeniden başlatılması sırasında, beklenmeyen bir kapanma genellikle beklediğiniz bir şey değildir.

MySQL beklenmedik bir şekilde çöktüğünde web siteniz veritabanıyla iletişim kuramaz. Bu, özellikle tüm işlemler için büyük ölçüde veritabanı bağlantısına dayanan WordPress gibi veritabanına dayalı platformlar için kritik bir sorundur.

XAMPP arayüzünde, özellikle olay günlüğünde vurgulanan, bu belirli hatayı giderme konusunda size yol gösteren mesajları fark edebilirsiniz.

XAMPP MySQL Hatasının Çeşitleri

XAMPP'de MySQL kapanmasıyla karşılaştığınızda bu mesajlardan biri ekranınızda görünecektir.

  • MySQL beklenmedik şekilde kapanıyor.
  • Hata: MySQL beklenmedik şekilde kapanıyor.
  • MySQL hizmeti başlamıyor.
  • "3306 numaralı bağlantı noktası başka bir uygulama tarafından kullanılıyor" gibi bağlantı noktası sorunları.
  • İbdata dosyalarıyla ilgili sorunlara işaret eden hata mesajlarını günlüğe kaydedin.
  • MySQL işlemi beklenmedik bir şekilde sonlandırıldı.

Bu varyasyonların her biri, neden hakkında ipuçları verebilir ve sorun giderme sırasında yardımcı olabilir.

XAMPP MySQL Hatasının Arkasındaki Sebepler

Bu XAMPP MySQL Hatası "MySQL'in beklenmedik bir şekilde kapanması" ile karşılaşmanın birçok nedeni olabilir:

Bağlantı noktası çakışmaları: MySQL varsayılan olarak 3306'yı kullanır.Bu bağlantı noktasını başka bir bilgisayar uygulaması kullanıyorsa MySQL başlamaz ve kapanmaya neden olur.

Hasarlı tablolar veya veri dosyaları: Disk sorunları, beklenmeyen kapanmalar veya diğer nedenlerden dolayı MySQL dosyaları hasar görürse MySQL başlatılamayabilir.

Yetersiz yapılandırma: my.ini dosyanızdaki yanlış arabellek boyutları veya bellek ayırmaları gibi yanlış yapılandırmalar, başlatma hatalarına neden olabilir.

İzin sorunları: MySQL'in veri dosyalarına erişmek ve işlemleri gerçekleştirmek için belirli izinlere ihtiyacı vardır.Bu izinler yanlışsa MySQL'in işlemleri durabilir.

"MySQL Beklenmedik Şekilde Kapatıldı" XAMPP Hatasını Düzeltme

Beklenen sorun giderme kısmına geldik. XAMPP hatasının nasıl düzeltileceğine ilişkin adım adım kılavuz: "MySQL beklenmedik şekilde kapanıyor"

1. Bağlantı Noktası Çakışmalarını Kontrol Edin

Windows Kullanıcıları için:

  1. Komut İstemini açın: Win + R tuşlarına basın → cmd yazın → Enter tuşuna basın.
  2. Netstat'ı kullanın: netstat -ano yazın |findstr 3306 → Enter'a basın. Bu komut, MySQL için varsayılan bağlantı noktası olan 3306 numaralı bağlantı noktasını kullanan tüm uygulamaları arar.
  3. Çıktıyı Yorumlayın: Bir çıktı satırı görürseniz, bir şey 3306 numaralı bağlantı noktasını kullanıyor demektir . Çakışan uygulamayı tanımlamak için buna ihtiyacınız olacağından satırın sonundaki PID'yi (İşlem Kimliği)not edin.

MacOS/Linux Kullanıcıları için:

  1. Terminali açın.
  2. lsof kullanın: lsof -i :3306 yazın → Enter'a basın.Bu komut, 3306 numaralı bağlantı noktasını kullanan açık dosyaları ve ilgili uygulamaları listeler.
  3. Sonuçları Okuyun: Komut bilgi döndürüyorsa, 3306 numaralı bağlantı noktasının kullanımda olduğu anlamına gelir.Sağlanan uygulama adını veyaPID'yi not edin.

3306 numaralı bağlantı noktasını kullanan bir uygulamayı belirledikten sonra, çakışan uygulamanın bağlantı noktasını veya MySQL bağlantı noktasını değiştirerek sorunu çözün.

Seçenek 1: Çakışan uygulamayı bulmak için daha önce not ettiğiniz PID'yi veya uygulama adını kullanın. Uygulamanın yapılandırma ayarlarını veya dosyasını bulun. Bağlantı noktası numarası ayarını arayın (3306 olarak ayarlanması gerekir) ve bunu farklı bir bağlantı noktası numarasıyla değiştirin. Değişikliklerinizi kaydedin.

3306 bağlantı noktasını değiştirme.

Seçenek 2: XAMPP'de MySQL'in Bağlantı Noktasını Değiştirme: XAMPP MySQL klasörünüzde bulunan my.ini dosyasını açın, bağlantı noktasını belirten satırı arayın (genellikle port=3306) ve bunu boş bir bağlantı noktasıyla değiştirin.Bu değişikliği yaptıktan sonra MySQL'i yeniden başlatın.

2. Bozuk tabloları veya veri dosyalarını onarın

Öğrendiğimiz gibi, XAMPP içindeki bozuk MySQL tabloları veya veri dosyaları, MySQL'in beklenmedik şekilde kapanmasına neden oluyor olabilir. İşte yolsuzluğu tespit etme adımları.

  1. XAMPP kurulum dizininize gidin →mysql\data klasörüne gidin .Burası MySQL'in veritabanı dosyalarını sakladığı yerdir.
  2. Neyin yanlış gittiğiyle ilgili bilgi içerebilecek hata günlüğü dosyaları olan.err dosyalarını arayın .
  3. Veritabanlarınızın adını taşıyan dosyaları inceleyin. Sıra dışı görünen dosya boyutlarına ve değişiklik tarihlerine dikkat edin; bunlar yolsuzluğun göstergesi olabilir.

Bozuk bir dosya belirlediyseniz. İşte bunu nasıl çözeceğiniz.

MyISAM tabloları için

  1. Öncelikle verilerinizi yedekleyin. Bunu, veritabanlarınızı dışa aktararak XAMPP'nin phpMyAdmin'i aracılığıyla veya komut satırı araçlarından memnunsanız mysqldump komutunu kullanarak yapın.
  2. Komut isteminizi (Windows) veya terminalinizi (macOS/Linux) açın.

Windows kullanıcıları için cd yazıp ardından C:\xampp\mysql\bin gibi yolu yazarak XAMPP'nizin MySQL dizinindeki bin klasörüne gidin .

Komut satırına myisamchk -r /path/to/your/table.MYI yazın ve /path/to/your/table.MYIdosyasını düzeltmeniz gerekenMyISAMtablosunun gerçek yolu ile değiştirdiğinizden emin olun . -r, masanızı onarmayı amaçlayan "kurtarma" anlamına gelir.

InnoDB Tablolarını Kullanma

InnoDB tabloları tasarımları nedeniyle biraz daha yanıltıcıdır ve onlar için myisamchk gibi basit bir araç yoktur.

  1. InnoDB tablolarıyla ilgili hata mesajları için mysql\data dizini içindeki .err dosyalarına bakın .Bunlar size neyin yanlış olduğu konusunda ipuçları verebilir.
  2. Zorla kurtarmayı deneyin. MySQL'i kurtarma moduna zorlayın.my.ini (Windows) veya my.cnf (diğer işletim sistemi)dosyasını düzenleyin ,[mysqld]bölümünün altınainnodb_force_recovery = 1ekleyin ve ardından MySQL'i yeniden başlatın.

Eğer işler kötü görünüyorsa, en iyi seçeneğiniz bir yedekten geri yüklemek olabilir. Umarım, hasarlı tabloları veya veritabanını değiştirebilecek yeni bir tane vardır.

3. Yapılandırmayı gözden geçirin ve ayarlayın

  1. My.ini dosyasını bir metin düzenleyiciyle açın .İncelenecek önemli noktalar arasındainnodb_buffer_pool_size (artırılması performansa yardımcı olabilir) ve basediriledatadir'debelirtilen yollar yer alır .
  2. Herhangi bir yanlış yapılandırma bulursanız veya bir ayarın sorunlara neden olabileceğinden şüpheleniyorsanız gerekli ayarlamaları yapın. Örneğininnodb_buffer_pool_size iş yükünüz için çok düşük bir değere ayarlanmışsa bunu uygun şekilde artırın.Değişiklik yapmadan önce daima orijinalmy.ini dosyasını yedekleyin.

4. Doğru izinleri ayarlayın

MySQL veya XAMPP, özellikle güvenlik yazılımındaki güncellemeler veya değişikliklerden sonra dizinlerine ve dosyalarına erişmek için gerekli izinlere sahip olmayabilir.

  1. MySQL ve XAMPP klasörlerinin izinlerini kontrol edin.
  2. XAMPP çalıştıran kullanıcı hesabının tam erişim haklarına sahip olduğundan emin olun.
  3. Windows'ta XAMPP klasörüne sağ tıklayıp Özellikler→ Güvenlik'e gidip buna göre ayarlama yapmanız gerekebilir .
  4. MacOS ve Linux'ta doğru izinleri ayarlamak içinchmod ve chownkomutlarını kullanın.

5. Yeniden başlatın ve izleyin

Düzeltmeleri uyguladıktan sonra XAMPP'yi ve özellikle MySQL hizmetini XAMPP Kontrol Paneli aracılığıyla yeniden başlatın.

Yeni uyarılar veya hatalar için MySQL hata günlüğü dosyasına göz atın. Bu günlük genellikle veri dizininde bulunur veya my.ini dosyasında belirtilir.

Özetliyor

Yerel sunucu ortamlarını kullanırken XAMPP MySQL hatasıyla karşılaşmak, "MySQL'in beklenmedik şekilde kapanması" bilmeniz gereken yaygın bir sorundur. Bunu nasıl düzelteceğinizi ve sunucuyu nasıl yedekleyeceğinizi bilmek bile kritik öneme sahiptir. Bu kılavuzda size XAMPP'nin temellerini, nasıl çalıştığını, sorunu, neden oluştuğunu ve paniğe kapılmadan sorunu adım adım nasıl çözebileceğinizi öğrendik.

Yerel XAMPP sunucusunu kullanıyorsanız sorunla tekrar karşılaşmanız durumunda bu kılavuzu elinizin altında bulundurun. Endişelenmeyin, tüm sorun giderme sürecini sizin için ayrıntılı olarak ele aldık.