Max_allowed_packet boyutu nasıl değiştirilir

MySQL veritabanımdaki BLOB alanlarıyla ilgili bir sorun yaşıyorum - yaklaşık 1 MB'tan büyük dosyaları yüklerken Max_allowed_packet'ten daha büyük paketlere izin verilmiyor hatası alıyorum.

İşte denediğim şey:

MySQL Query Browser'da 'max_allowed_packet'gibi birshow variables' çalıştırdım ve bana 1048576 değerini verdi.

Ardından set global max_allowed_packet=33554432 sorgusunu çalıştırıyorum ve ardından show variables like 'max_allowed_packet' - beklendiği gibi bana 33554432 veriyor.

Ancak MySQL sunucusunu yeniden başlattığımda sihirli bir şekilde 1048576 değerine geri dönüyor. Burada neyi yanlış yapıyorum?

Bonus soru, bir BLOB alanını sıkıştırmak mümkün mü?

Çözüm

Dosyanızdaki [mysqld] veya [client] bölümünün altındaki tek satırı dahil ederek my.ini veya ~/.my.cnf dosyasında değişiklik yapın:

max_allowed_packet=500M

ardından MySQL hizmetini yeniden başlatın ve işiniz bitti.

Daha fazla bilgi için dokümantasyon bölümüne bakın.

Yorumlar (11)

max_allowed_packet]1 değişkeni bir sorgu çalıştırılarak global olarak ayarlanabilir.

Ancak, bunu my.ini dosyasında değiştirmezseniz (dragon112'nin önerdiği gibi), global olarak ayarlasanız bile sunucu yeniden başlatıldığında değer sıfırlanacaktır.

Sunucu yeniden başlatılana kadar herkes için izin verilen maksimum paketi 1GB olarak değiştirmek için:

SET GLOBAL max_allowed_packet=1073741824;
Yorumlar (10)

Bu hata, verilerinizin ayarlanan değerden daha büyük bir değer içermesinden kaynaklanır.

Sadece max_allowed_packed=500M değerini yazın ya da isterseniz 500*1024k değerini hesaplayıp 500M yerine kullanabilirsiniz.

Şimdi MySQL'i yeniden başlatın.

Yorumlar (2)