La'hev

Heverovy poznatky a poznámky

Uživatelské nástroje

Nástroje pro tento web


Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
mysql_mariadb [2015/02/27 16:32] Hevermysql_mariadb [2015/05/25 13:05] (aktuální) Hever
Řádek 20: Řádek 20:
 je to problém lešího zabezpečení v novější verzi MySQL. Funkce musí být uvedené, že jsou DETERMINISTIC (nebo nějakou obdobnou deklaraci) jinak MySQL vyhodí chybu a funkci nevytvoří. Vyřešit se to dá následujícím příkazem nebo předefinováním funkcí. je to problém lešího zabezpečení v novější verzi MySQL. Funkce musí být uvedené, že jsou DETERMINISTIC (nebo nějakou obdobnou deklaraci) jinak MySQL vyhodí chybu a funkci nevytvoří. Vyřešit se to dá následujícím příkazem nebo předefinováním funkcí.
  
-<code>SET GLOBAL log_bin_trust_function_creators = 1;</code>+<code>SET GLOBAL log_bin_trust_function_creators = 1; # POZOR! neideální řešení.</code> 
 + 
 +Lepší bude možná zvážit, **vypnout binární logování úplně** (viz další kapitola). 
 + 
 +== Binární log == 
 +Po aktualizaci db je v základní konfiguraci změna v tom, že zapne **binární log**. Jak název napovídá, mysql vytváří soubory obsahující (v binární podobě) všechny prováděné změny. Soubory jsou předvídatelně umístěné ''/var/log/mysql/mariadb-bin.*''. Jejich obsah lze prohlédnout příkazem ''mysqlbinlog''. Binární log má nastavenou expirační dobu a umí se rychle rozrůst. 
 + 
 +Binární log se užívá k **zálohování** (občas si provedu mysqldump a když vím v jakém stavu se dump provedl, můžu nejnovější stav "dopočítat" z binárního logu) a/nebo k **replikaci**, kdy slave si z masteru tahá právě informace z binárního logu a u sebe je aplikuje (takže klidně může na nějakou dobu vypadnout spojení a pak se vše umí dát do pořádku). 
 + 
 +Z výše uvedených je pak namístě, aby MySQL se funkce (jejichž volání je v binárním logu) nechovaly nedeterministicky. Proto při zapnutém binárním logu si databáze umí stěžovat, že procedury/funkce nejsou deterministické. 
 + 
 +Binární logování se zapíná v my.cnf. Bohužel ji nelze vypnout v debianím duchu, je nutné editovat my.cnf a zakomentovat řádky ''log_bin...'' a ''expire_logs_days...''((Zdroj: http://dba.stackexchange.com/questions/72770/disable-mysql-binary-logging-with-log-bin-variable)), restartovat mysql a potom log soubory smazat.
  
 ===== Nástroje ===== ===== Nástroje =====
mysql_mariadb.txt · Poslední úprava: 2015/05/25 13:05 autor: Hever