Windows MySQL v5 hata veriyor ancak Linux ve diğer sürümler yalnızca uyarı veriyor. Bunun düzeltilmesi gerekiyor. O NE LAN?
Ayrıca, MySQL Bugtracker'da # 19498 hatasını düzeltmeye çalışın:
Bryce Nesbitt, 4 Nisan 2008 16:36:
MS Windows'da "VARSAYILAN yok" kuralı bir hatadır, diğer platformlarda ise genellikle bir uyarıdır. Hata olmasa da, esnek bir platformda kod yazarsanız ve daha sonra katı bir platformda çalıştırırsanız bununla tuzağa düşmek mümkündür:
Şahsen bunu bir böcek olarak görüyorum. "BLOB / TEXT sütununun varsayılan değeri olamaz" araması Google'da yaklaşık 2.940 sonuç döndürür. Bunların çoğu, bir sistem üzerinde çalışan ancak diğerlerinde çalışmayan DB komut dosyalarını yüklemeye çalışırken uyumsuzlukların raporlarıdır.
Ben şimdi bir webapp üzerinde aynı sorunla karşılaşıyorum Ben başlangıçta Linux MySQL v5.0.83-log üzerine dağıtılmış müşterilerim, biri için değiştiriyorum. Windows MySQL v5.1.41 kullanıyorum. Veritabanını ayıklamak için phpMyAdmin'in en son sürümünü kullanmaya çalışsa bile, söz konusu metin sütunu için bir varsayılan bildirmez. Yine de, Windows üzerinde bir ek çalıştırmayı denediğimde (Linux dağıtımında iyi çalışır) ABC sütununda varsayılan olmayan bir hata alıyorum. Tabloyu bariz varsayılan ile yeniden oluşturmaya çalışıyorum (bu sütun için benzersiz değerlerin bir seçimine dayanarak) ve sonunda oh-so-yararlı BLOB / TEXT sütunu varsayılan bir değere sahip olamaz .
Yine, platformlar arasında temel uyumluluğu sürdürmek kabul edilemez ve bir hatadır.
MySQL 5'te katı modu nasıl devre dışı bırakabilirim (Windows):
/My.ini dosyasını düzenleyin ve satırı arayın
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Şununla değiştir:
sql_mode='MYSQL40'
MySQL hizmetini yeniden başlatın (mysql5 olduğu varsayılarak)
net stop mysql5
net start mysql5
Kök / yönetici erişiminiz varsa,
mysql_query("SET @@global.sql_mode='MYSQL40'");