Konular

Disable Strict Mode for MySQL-MARIADB

Disable Strict Mode for MySQL-MARIADBMySQL 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.

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /home/yesmediapro/public_html/202-config/class-dataengine.php:421

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.

nano /etc/mysql/conf.d/strict_mode.cnf
   

Aşağıdaki kodu o dosyaya yapıştırın,

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

veya

[mysqld]
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

Dosyayı kaydedin ve kapatın. Ve sonra MySQL sunucusunu yeniden başlatın.

systemctl restart mysql
   

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,

rm /etc/mysql/conf.d/strict_mode.cnf
 
 
 

MySQL'i yeniden başlatın,

systemctl restart mysql
   

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

 

Yorumunuzu Ekleyin

Mysql Tablo Türleri
Mysql field tipleri
Yükleniyor...