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 bir
show 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ü?
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.
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;
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.