Ödeme Yöntemleri Abuse

Ошибка 2006: MySQL Sunucusu ortadan kalktı

09.03.2021, 22:01

MySQL Sever gitti adlı 2006 hatası, sunucunun çalışıyor olmasına rağmen bağlanmayı reddettiği anlamına gelir. Hatanın ortaya çıkmasının bilinen yalnızca üç nedeni vardır. İlk neden sunucunun aşırı yüklenmiş olmasıdır. Bekleme süresi dolmuştur. İkinci neden - istemci çok acı verici bir paket göndermiştir. Üçüncü neden ise sunucunun tam olarak başlatılmamış olmasıdır. Ayrıca, hatanın hangi nedenlerle ortaya çıktığını ve bununla nasıl başa çıkılacağını ayrıntılı olarak ele alacağız.

Hata nasıl düzeltilir

Hata genellikle PHP, konsol istemcisi veya PhpMyAdmin kullanılarak veritabanına bağlanılmaya çalışıldığında ortaya çıkar:

PhpMyAdmin

Şimdi her bir durumu ayrı ayrı inceleyelim.

Zaman aşımı süresi doldu

Bu makalenin başında belirtildiği gibi, olası nedenlerden biri bekleme süresinin dolmasıdır. Sunucu aşırı yüklenmiş olabilir ve tüm bağlantıları işleyerek yük ile başa çıkamıyor olabilir. Sunucu isteklerinin ne kadar sürdüğünü anlamak için, herhangi bir konsol istemcisi kullanabilir ve sunucuya bağlanabilirsiniz. Eğer bunu yapabiliyorsanız, herhangi bir isteği çalıştırın. Eğer sorguların işlenmesi çok zaman alıyorsa, MySQLTuner özel betiğini kullanarak MySQL'i optimize edebilirsiniz. Genellikle innodb_buffer_pool_size parametresini ayarlayarak InnoDB motorunun havuz boyutunu artırın. En uygun değer yukarıdaki komut dosyası kullanılarak belirlenir.

Eğer 800 megabayt ise (başka herhangi bir boyut olabilir), ayarlayın:

$ sudo vi /etc/mysql/my.cnf
innodb_buffer_pool_size=800M

https://pq.hosting/help/myfiles/mysqlhasgoneavay-991x576.png

Sorunu çözmenin başka bir yolu daha vardır. Bu amaçla sunucudan gelen yanıt süresi artırılır. Bu görevi gerçekleştirmek için wait_timeout parametresini değiştirmeniz gerekir. Bu, sunucudan bir yanıt beklemeniz gereken saniye cinsinden süredir.

Örneğin:

wait_timeout=500

параметр wait_timeout

Değişiklik yaparken, daha sonra sunucuyu yeniden başlatmayı unutmayın:

$ sudo systemctl restart mysql

Ya da:

$ sudo systemctl restart mariadb

Çok büyük bir paket

Bir kullanıcının istemcisi çok fazla paket oluşturduğunda, sunucu bu hatayı üretecektir. Kullanılabilir paket boyutu (maksimum değer) max_allowed_packet parametresi kullanılarak artırılabilir.

Örneğin:

$ sudo vi /etc/mysql/my.cnf
max_allowed_packet=128M

İstemciye özellikle dikkat edin, çünkü çok fazla istek gönderiyorsa, açıkça yanlış bir şey yapıyorsunuz demektir. En azından MySQL'e for döngüleri kullanarak sorgu oluşturmayın.

Sunucu yanlış başlatılmış

MySQL veya MariaDB'yi Docker'da dağıtmaya karar verirseniz, benzer bir hatayla karşılaşmaya hazır olun. Konteynerin ilk başlatılması biraz daha fazla boş zaman gerektirir. Eğer konteyneri durdurup başlatarak başlatma işlemini tamamlamasına izin vermezseniz, veritabanı her zaman bu hatayı verecektir. Çözüm, konteyner verilerini veritabanından tamamen kaldırmaktır.

Bu şu şekilde yapılır:

$ docker-compose down

veya:

$ docker rm mysql-container

Ardından, yanlış başlatılmış veritabanının bulunduğu depolamayı (birimi) silmeniz gerekir. Ancak başlangıçta, tüm depoların listesine bakın:

$ docker volume ls

СЕРВЕР НЕВЕРНО ПРОИНИЦИАЛИЗИРОВАН

Sildikten sonra:

$ docker volume rm volume_name

Artık uygulamayı başlatmaya başlayabilirsiniz, sadece veritabanı sunucusu size hazır olduğunu söyleyene kadar bekleyin ve ona bağlanabilirsiniz.