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í revize Předchozí verze
mysql_mariadb [2015/02/27 16:32]
Hever
mysql_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