Mysql Strict Mode Aktif mi , Pasif mi?

Mysql Strict Mode Aktif mi , Pasif mi?

Bunu mysql sunucunuzda aşağıdaki sorguyu çalıştırarak öğrenebilirsiniz.

mysql> SELECT @@sql_mode;
+——————————————–+
| @@sql_mode |
+——————————————–+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+——————————————–+
1 row in set (0.00 sec)

Yukarıda aktif gözüküyor.

Bunu doğrulamanın bir diğer yolu ise aşağıdaki sorgudur.

mysql> SHOW VARIABLES LIKE ‘%SQL%’;
Connection id:    159718988
Current database: *** NONE ***

+————————–+——————————————–+
| Variable_name            | Value                                      |
+————————–+——————————————–+
| sql_auto_is_null         | OFF                                        |
| sql_big_selects          | ON                                         |
| sql_big_tables           | OFF                                        |
| sql_buffer_result        | OFF                                        |
| sql_log_bin              | ON                                         |
| sql_log_off              | OFF                                        |
| sql_low_priority_updates | OFF                                        |
| sql_max_join_size        | 18446744073709551615                       |
| sql_mode                 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
| sql_notes                | ON                                         |
| sql_quote_show_create    | ON                                         |
| sql_safe_updates         | OFF                                        |
| sql_select_limit         | 18446744073709551615                       |
| sql_slave_skip_counter   | 0                                          |
| sql_warnings             | OFF                                        |
+————————–+——————————————–+
15 rows in set (0.01 sec)

Kapatmak için my.cnf ya da my.ini dosyanızı açınız.

sql-mode=”STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION”

Yukarıdaki gibi bir satır görüyor iseniz bunu aşağıdaki gibi değiştirip mysql servisini restart edebilirsiniz.

sql-mode=”NO_ENGINE_SUBSTITUTION”

Eğer böyle bir satır yok ise kendiniz aşağıdaki satırı ekleyip servisi restart edebilirsiniz.

sql_mode=NO_ENGINE_SUBSTITUTION

Ayrıca belirtmekte fayda var ki , eğer strict mode aktif çalışıyor iseniz mysql güvenliğiniz daha üst seviyededir. Fakat sunucu üzerinde birden çok fazla db çalıştırıyor iseniz açmanızda bir sakınca bulunmamaktadır. Bu modda MySQL’e has bir çok özellik veritabanı uyumluluğu amacıyla devre dışı bırakılır. Daha doğru sorgular yazmanız ve birçok farklı nedenden dolayı strict mode tavsiye edilir.

Ayhan ARDA

Share Button

Yayımlandı

kategorisi

yazarı:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.