MySQL
MariaDB
Fedora distribuuje MariaDB SQL database server ako "mariadb versioned package" , t.j. vo viacerych verziach sucasne (od 2024-03), pricom vzdy len LTS releases, see also [1] and [2]. Aktualne (2026) su to versioned packages: mariadb10.11, mariadb11.8 a mariadb12.3. Pre kazdu verziu Fedory je prave jedna verzia unversioned package mariadb ako default:
- Fedora 43: mariadb = mariadb10.11
- Fedora 44: mariadb = mariadb11.8
NOTE Vzdy je mozna instalacia prave jednej verzie, nie je mozne mat nainstalovane sucasne dve (alebo viac) verzii. V pripada, ze sa pokusime instalovat dalsiu verziu, tak dnf informuje o probleme, resp. conflicts, t.j. musime sa rozhodnut aku verziu nainstalujeme, resp. vymazeme.
Okrem toho aj samotna MariaDB Foundation ponuka moznost pouzitia vlastneho repository (samotne repository). Vo vseobecnosti sa vsak neodporuca taka instalacia.
V Linux distribuciach MariaDB plne nahradza MySQL database. Po odkupeni autorskych prav v roku 2009 spolocnostou Oracle, povodni vyvojari MySQL vytvorili open source fork pod menom MariaDB. Vacsina prikazov zostava identicka (zamena 'mysql' na 'mariadb') samotne prikazy su len navzajom prelinkovane mysql -> mariadb, mysql_config -> mariadb_config a pod.
MariaDB server pri spusteni preveruje (okrem ineho) existenciu nevyhnutnych systemovych prostriedkov a v pripade potreby spusti inicializacny shell script mariadb-install-db, ktory vytvori nevyhnutne data directory a systemove tables v mysql databaze a (okrem ineho) vytvori aj uzivatela root@localhost. Shell script mariadb-secure-installation podstatne zvysuje bezpecnost instalacie MariaDB. Vhodny na prve, jednorazove spustenie po nainstalovani systemu a nastavenie hesla pre uz vytvoreneho root@localhost uzivatela.
Pri prihlasovani MariaDB server pouziva authentication plugins na overenie uzivatela s moznostou pouzit viac ako jeden plugin roznych uzivatelov. Default je uzivatel root@localhost vytvoreny s moznostou vyuzivat two authentication plugins (platne od MariaDB 10.4, resp. Fedora 32+ released 2020-04).
- unix_socket authentication plugin, ktory umoznuje pre
root@localhostprihlasenie bez hesla cez lokalny Unix socket. Taketo overenie mozno nastavit pre roznych uzivatelov. Najlepsia cesta ako mat heslo v bezpeci je nemat ziadne heslo ! Uzitocne a bezpecne riesenie, avsak problematicke pri pouzivani roznych externych programov ako napr. phpMyAdmin. - mysql_native_password authentication plugin, t.j. klasicke password-based prihlasenie, ktore sa pouzije ak prve (unix_socket) overenie zlyhalo. Samozrejme heslo musi byt nastavene.
$ systemctl start mariadb.service $ mariadb-secure-installation Switch to unix_socket authentication [Y/n] y Change the root password? [Y/n] y Disallow root login remotely? [Y/n] y
### unix_socket [root]# mysql -h localhost -u root Welcome to the MariaDB monitor [user]$ mysql -h localhost -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost' $ mysql -h 127.0.0.1 -u root # localhost ≠ 127.0.0.1 for Unix socket ERROR 1698 (28000): Access denied for user 'root'@'localhost' ### mysql_native_password $ mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MariaDB monitor
Notes
MariaDB server uklada vsetky data do /var/lib/mysql/ directory (nastavene cez /etc/my.cnf.d/mariadb-server.cnf config file). V krajnom, nutnom pripade vymazanim celej tejto directory mozeme dostat MariaDB do povodneho stavu (ala cista instalacia). POZOR vsetky data budu nenavratne zmazane (nezabudnut vykonat zalohu).
$ systemctl stop mariadb.service $ rm -rf /var/lib/mysql/ # !!! destroy all database data !!! $ dnf reinstall mariadb-server # running scriptlet (necessary) $ systemctl start mariadb.service $ mariadb-secure-installation
Od verzie MariaDB 10.4 su vsetky informacie ohladom user accounts, passwords and global privileges ulozene v mysql.global_priv table. Nahradza povodnu table mysql.user, ktora stale existuje, ale teraz sa uz len odkazuje na table mysql.global_priv (zachovanie spatnej kompatibility).
Zobrazit uplny zoznam MariaDB Server System Variables mozeme pomocou prikazu SHOW VARIABLES z mysql clienta alebo $ mysqld --verbose --help zo shell prostredia.
MariaDB> SHOW VARIABLES LIKE '%server';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| character_set_server | latin1 |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
/var/log/mariadb/mariadb.log reportuje nejake chyby (pri praci s databazou vsak neboli pozorovane ziadne problemy)
[ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
[ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
Jednoduche riesenie pomocou mariadb-upgrade tool. Odporuca sa spustat tento prikaz aj pri zmene major verzie MariaDB.
$ mariadb-upgrade
phpMyAdmin
phpMyAdmin konfiguracny subor config.inc.php z Fedora balika je len mierne upraveny povodny config.sample.inc.php z phpMyAdmin.
$ dnf install phpMyAdmin $ mv /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.orig $ wget -nc https://raw.githubusercontent.com/musinsky/config/master/phpMyAdmin/config.inc.php -P /etc/phpMyAdmin/ $ chmod 640 /etc/phpMyAdmin/config.inc.php $ chown root:apache /etc/phpMyAdmin/config.inc.php $ systemctl restart httpd.service