MariaDB: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(Založena nová stránka s textem „== Základní příkazy pro práci s MariaDB (MySQL) == Připojení na MariaDB v docker docker exec -ti mariadb mariadb -u root -p === Database === === Z…“)
 
(Cardinality)
 
(Nejsou zobrazeny 2 mezilehlé verze od 2 dalších uživatelů.)
Řádka 22: Řádka 22:
 
  SELECT User, Host, authentication_string FROM mysql.user;
 
  SELECT User, Host, authentication_string FROM mysql.user;
  
==== Vytvoření uživatele ===
+
==== Vytvoření uživatele ====
 
Adresa určuje odkud se může někdo přihlásit na uživatele, znak '''%''' určuje pro všechny
 
Adresa určuje odkud se může někdo přihlásit na uživatele, znak '''%''' určuje pro všechny
 
  CREATE USER 'user'@'address' IDENTIFIED BY 'password';  
 
  CREATE USER 'user'@'address' IDENTIFIED BY 'password';  
Řádka 37: Řádka 37:
 
==== Smazání uživatele ====
 
==== Smazání uživatele ====
 
  DELETE FROM mysql.user WHERE user='<user>' AND host = 'adrress'
 
  DELETE FROM mysql.user WHERE user='<user>' AND host = 'adrress'
 +
FlUSH PRIVILEGES;
 +
 +
=== Ostatní ===
 +
==== Promazání binlogu ====
 +
'''x''' nahradit nenovější verzí
 +
PURGE BINARY LOGS TO 'binlog.xxxxxx';
 
  FlUSH PRIVILEGES;
 
  FlUSH PRIVILEGES;
  
Řádka 47: Řádka 53:
 
  GRANT ALL PRIVILEGES ON *.* TO 'filip'@'%';
 
  GRANT ALL PRIVILEGES ON *.* TO 'filip'@'%';
 
  FlUSH PRIVILEGES;
 
  FlUSH PRIVILEGES;
 +
=== Cardinality ===
 +
Účelem je kontrola tabulek, aby nebylo potřeba provádět analyza na cele databazi.
 +
 +
1.Prvně zjistíme, které tabulky mají cardinality "0" (%s = nazev_databaze).
 +
SELECT table_name FROM information_schema.statistics WHERE cardinality=0 AND table_schema='%s' GROUP BY table_name;
 +
 +
2.Z výše získaného seznamu zkontrolujeme tabulky, zda count(*) je větčí jak 0
 +
SELECT count(*) FROM 'tabulka'
 +
 +
3. U těch, kde je předchozí hodnota větčí 0, provedeme opravu:
 +
ANALYZE table 'tabulka'

Aktuální verze z 12. 5. 2025, 14:09

Základní příkazy pro práci s MariaDB (MySQL)

Připojení na MariaDB v docker

docker exec -ti mariadb mariadb -u root -p

Database

Zobrazení Database

SHOW DATABASES;

Vytvoření Database

CREATE DATABASE new_database;
FlUSH PRIVILEGES;

Připojení na Database

USE new_database;

Smazaní Database

DROP DATABASE new_database;
FlUSH PRIVILEGES;

Uživatel

Zobrazení uživatelů

SELECT User, Host, authentication_string FROM mysql.user;

Vytvoření uživatele

Adresa určuje odkud se může někdo přihlásit na uživatele, znak % určuje pro všechny

CREATE USER 'user'@'address' IDENTIFIED BY 'password'; 
FlUSH PRIVILEGES;

Změna hesla

ALTER USER 'user'@'address' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;

Změna práv na tabulku/y

Jde použít znak * pro povolení všecho, klidně i všech tabulek

GRANT ALL PRIVILEGES ON new_database.table TO 'user'@'address';

Smazání uživatele

DELETE FROM mysql.user WHERE user='<user>' AND host = 'adrress'
FlUSH PRIVILEGES;

Ostatní

Promazání binlogu

x nahradit nenovější verzí

PURGE BINARY LOGS TO 'binlog.xxxxxx';
FlUSH PRIVILEGES;

Pár příkladů

Vytvoření uživatele pro všechny adresy

CREATE USER 'filip'@'%' IDENTIFIED BY 'heslo';
FlUSH PRIVILEGES;

Přidání všech práv uživateli

GRANT ALL PRIVILEGES ON *.* TO 'filip'@'%';
FlUSH PRIVILEGES;

Cardinality

Účelem je kontrola tabulek, aby nebylo potřeba provádět analyza na cele databazi.

1.Prvně zjistíme, které tabulky mají cardinality "0" (%s = nazev_databaze).

SELECT table_name FROM information_schema.statistics WHERE cardinality=0 AND table_schema='%s' GROUP BY table_name;

2.Z výše získaného seznamu zkontrolujeme tabulky, zda count(*) je větčí jak 0

SELECT count(*) FROM 'tabulka'

3. U těch, kde je předchozí hodnota větčí 0, provedeme opravu:

ANALYZE table 'tabulka'