Disable Strict Mode for MySQL-MARIADB
MySQL ile ilgili bir hatayı saydığımda Virtualmin, Nginx, PHP 7 ve MySQL 5.7 ile Ubuntu 16.04 LTS sunucusu üzerinde çalışıyordum. Birkaç MySQL sorgusu başarısız oldu ve üzerinde çalıştığım uygulama görüntülendi Yakalanmamış Hata: Boole üzerinde fetch_assoc () üye işlevine çağrı . Katı modu devre dışı bırakmak sorunu çözdü.
Bir istemci için kurduğum bir Prosper202 kurulumu üzerinde çalışıyordum. Sunucuyu Virtualmin ve Nginx ile oluşturdum . Ubuntu 16.04, MariaDB v10 ile birlikte gelse de Virtualmin, kurulum komut dosyasıyla MySQL 5.7'yi yükler. Prosper202, kampanyaya genel bakış sayfasında aşağıdaki hatayı görüntüledi.
Bunun MySQL Strict modundan kaynaklandığını anlamam uzun sürmedi. Prosper202, MySQL katı modu ile uyumlu değildir. Devre dışı bırakmak hatayı düzeltti. MySQL Strict Mode ile uyumlu olmayan diğer uygulamalar arasında WHMCS 6 ve Craft 2 bulunur. Dolayısıyla, uygulamanız hatalı çalışıyorsa Katı modu devre dışı bırakmayı düşünmelisiniz.
MySQL Strict Mode nedir?
Katı mod, SQL sorgularında geçersiz veya eksik değerleri işler. Hem MySQL hem de MariaDB'de mevcuttur ve MySQL 5.7 ve MariaDB 10'da varsayılan olarak etkindir. Sorgulardaki geçersiz veya eksik veriler, katı modda uyarılara veya hatalara neden olurken, geçersiz veya eksik değerler ayarlanır ve katı modda basit bir uyarı oluşturur kapalı. Devre dışı bırakmak çoğu durumda güvenli olsa da, bazen veritabanı tablolarında beklenmeyen hatalara neden olabilir.
MySQL Strict (Katı) Modu Nasıl Devre Dışı Bırakılır?
Ubuntu 16.04 LTS'de MySQL katı modunu devre dışı bırakmak nispeten kolaydır. Bu, CentOS gibi Linux'un diğer sürümlerinde çalışabilir. Ama test etmiyorum. Yorum bölümünde çalışıp çalışmadığını başkalarına bildirebilirsiniz. SSH ile kök kullanıcı olarak VPS'nize giriş yaparak başlayın .
Yeni bir .cnf dosyası oluşturun.
Aşağıdaki kodu o dosyaya yapıştırın,
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
veya
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Dosyayı kaydedin ve kapatın. Ve sonra MySQL sunucusunu yeniden başlatın.
Uygulamanızı açın ve hatalar kaybolmuş olmalı.
Mysql Strict Mode Nasıl Tekrar Etkinleştirilir?
Uygulamanız onunla uyumlu hale gelirse gelecekte katı modu tekrar açabilirsiniz. Sadece daha önce oluşturduğunuz dosyayı silip MySQL'i yeniden başlatmak katı modu tekrar açacaktır. Aşağıdaki komut dosyayı silecektir,
MySQL'i yeniden başlatın,
Bu kadar. MySQL Scrit (katı) modunu devre dışı bırakmakta veya yeniden etkinleştirmekte sorun yaşıyorsanız, yorumlar bölümünü kullanmaktan çekinmeyin.
Kaynak