Son gözden geçirme: Ekim 2026 · MariaDB 10.11 sistem değişkenleri ve phpMyAdmin resmî belgelerine göre
Hızlı çözüm
Max allowed packet hatası (Got a packet bigger than 'max_allowed_packet' bytes), veritabanına gönderilen tek bir sorgu ya da satırın sunucunun kabul ettiği en büyük paket boyutunu aştığını gösterir. Çoğu zaman büyük bir yedeği içe aktarırken çıkar.
max_allowed_packet değerini MariaDB yapılandırma dosyasında büyütüp hizmeti yeniden başlatın.--max-allowed-packet verin.| Panel | cPanel (phpMyAdmin); VPS’te komut satırı |
|---|---|
| Sistem | Paylaşımlı hosting (MariaDB 10.11); Ubuntu 24.04 ve AlmaLinux 9 VPS |
| Yetki | cPanel kullanıcısı; VPS’te root ya da sudo |
| Narhost ürünü | VPS Sunucu, Web Hosting |
Başlamadan önce
MariaDB ve MySQL, istemciyle sunucu arasındaki her mesajı paketlerle taşır. MariaDB belgesine göre max_allowed_packet tek bir paketin ya da ara sonucun alabileceği en büyük boyuttur; varsayılan değer sunucuda 16 MB, istemcide 1 GB’tır ve değer en çok 1 GB’a çıkarılabilir. Bir sorgu bu sınırı aşınca sunucu bağlantıyı keser ve max allowed packet hatası döner.
En sık nedenler: binlerce satırı tek bir INSERT cümlesinde toplayan büyük yedek dosyaları, veritabanında saklanan görsel ya da dosyalar (BLOB), çok uzun ayar kayıtları tutan eklentiler ve tek seferde büyük veri gönderen uygulama kodu. Aynı sorun bazen MySQL server has gone away iletisiyle de görünür.

Paylaşımlı sunucuda max_allowed_packet bütün hesaplar için ortak ayarlanır ve oturum değeri salt okunurdur; hesabınızdan değiştirilemez. Çözüm, sorguları sınıra sığacak hâle getirmektir.
INSERT olarak yazdırın:
mysqldump --skip-extended-insert -u kullanici -p veritabani > yedek.sql
Beklenen sonuç: dosya büyür ama hiçbir sorgu tek satırdan uzun olmaz; içe aktarma sınıra takılmaz.
mysql -u root -p -e "SHOW VARIABLES LIKE 'max_allowed_packet';"
Beklenen sonuç: varsayılan kurulumda 16777216 (16 MB) görünür.
/etc/mysql/mariadb.conf.d/50-server.cnf, AlmaLinux’ta /etc/my.cnf.d/mariadb-server.cnf dosyasında [mysqld] bölümüne ekleyin:
[mysqld]
max_allowed_packet = 256M
sudo systemctl restart mariadb
mysql --max-allowed-packet=256M -u kullanici -p veritabani < yedek.sql
Dikkat
Değeri gereğinden büyük tutmayın. Her bağlantı en çok bu kadar bellek ayırabilir; küçük bellekli bir sunucuda 1 GB gibi bir değer, eşzamanlı bağlantılarda belleği tüketebilir. Önce en büyük satıra yetecek değeri seçin.
Sonuç
SHOW VARIABLES LIKE 'max_allowed_packet'; komutu yeni değeri gösteriyor ve içe aktarma hata vermeden bitiyorsa sorun giderilmiştir. Paylaşımlı hostingte doğrulama, içe aktarmanın bütün tabloları tamamlamasıdır; phpMyAdmin’de tablo sayısını eski veritabanıyla karşılaştırın.
Narhost desteği
Talebe şunları ekleyin: veritabanı adı, hata metni birebir, içe aktarılan dosyanın boyutu, hatayı veren tablo adı ve denediğiniz adımlar.
Sonraki adımlar
Veritabanındaki en büyük satıra ya da tek sorguya yetecek kadar. Çoğu WordPress ve e-ticaret sitesi için 64 MB yeterlidir; veritabanında büyük dosya saklayan uygulamalarda daha yüksek değer gerekir. Değer 1024’ün katı olmalı ve 1 GB’ı geçemez.
Olmaz. SET GLOBAL yalnız yeni açılan bağlantıları etkiler ve sunucu yeniden başlayınca eski değere döner. Kalıcı değişiklik yapılandırma dosyasında yapılır.
Değişken sunucu genelinde ayarlanır ve oturum değeri salt okunurdur; bir hesabın değişikliği bütün hesapları etkilerdi. Bu yüzden çözüm sorguları küçültmek ya da gerekiyorsa destek ekibiyle görüşmektir.
Bu makale sorununuzu çözdü mü?
Geri bildiriminiz için teşekkürler.
Çözemediniz mi?
Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.