Tartalomjegyzék
MariaDB
- Szerző: Sallai András
- Copyright © Sallai András, 2017, 2018, 2019, 2020
- Licenc: GNU Free Documentation License 1.3
- Web: https://szit.hu
A MariaDB-ről
A MariaDB egy SQL nyelven használható adatbázisrendszer. A MySQL szerver elágazásából jött létre, de azzal teljesen kompatibilis. Az első kiadás 2009-ben látott napvilágot.
Telepítés
# apt install mariadb-server
Beállítások
Telepítéskor a korábbiaktól eltérően a rendszergazda jelszavát nem kéri a telepítő.
A szerver viszont elérhető ha linuxos rendszergazdaként (root), mariadb root felhasználóként lépünk be:
# mysql
Szimpla felhasználóként a -u root kapcsolóval sem fog működni!
Ha úgy gondoljuk, hogy nem biztonságos, ha a root felhasználó jelszó nélkül léphet be, futtassuk a mysql_secure_installation scriptet.
A következő lehetőségeink adódnak:
- root jelszó beállítása
- távoli root felhasználó tiltása
- test adatbázis törlése
- névtelen felhasználó törlése
- reload jog törlése
# mysql_secure_installation
Enter current password for root (enter for none): <-- Enter Set root password? [Y/n] <-- y New password: <-- A MariaDB root jelszavát írjuk ide Re-enter new password: <-- Megismételjük a jelszót Remove anonymous users? [Y/n] <-- y Disallow root login remotely? [Y/n] <-- y Reload privilege tables now? [Y/n] <-- y
A felhasználók, adatbázisok tesztelése:
# mysql
MariaDB [(none)]> select user, password, host from mysql.user;
MariaDB [(none)]> show databases;
Vezérlés
Az adatbázis szerver indítása:
# systemctl start mariadb
Az adatbázis-szerver leállítása.
# systemctl stop mariadb
Újraindítás után induljon el automatikusan a szerver:
# systemctl enable mariadb
Újraindítás után ne induljon el automatikusan a szerver:
# systemctl disable mariadb
Az adatbázis-szerver státuszának lekérdezése.
# systemctl status mariadb
Ügyeljünk arra, hogy a mariadb docker rendszerből indítva mysql néven érhető el, SysVinit parancsokkal. Például:
# service mysql start
Admin felhasználó létrehozása
MariaDB [(none)]> grant all privileges -> on *.* -> to 'admin'@'localhost' -> identified by 'titok';
MariaDB [(none)]> grant grant option -> on *.* -> to 'admin'@'localhost';
Minden jog az admin számára:
grant all privileges on *.* to 'admin'@'localhost';
Ellenőrzés:
MariaDB [(none)]> show grants for admin@localhost;
Egyben is beállítható
grant all privileges on *.* to 'admin'@'localhost' identified by 'titok' with grant option;
Jelszó utólag:
set password for 'admin'@'localhost' = password('titok');
Újabb verziókon lehet ez:
alter user 'admin'@'localhost' identified by 'titok';
Adatbázis és felhasználó felvétele
MariaDB [(none)]> create database dbnev;
Ellenőrzés:
MariaDB [(none)]> show databases;
MariaDB [(none)]> grant all privileges -> on dbnev.* -> to 'usernev'@'localhost' -> identified by 'titok';
Ellenőrzés:
MariaDB [(mysql)]> select User from user;
Felhasználó törlése
DROP USER username@localhost;
Jogok visszavonása
REVOKE ALL privileges ON dbname.* FROM 'username'@'localhost'
Adatbázisfelhasználó törlése
drop user 'nev'@'localhost';
Adatbázis exportálása
Az adatbázisokat exportálni, menteni a mysqldump paranccsal tudjuk. A -u kapcsoló után adjuk meg a felhasználót. A -p hatására bekéri a jelszót. Opcionálisan a megadható az adatbázis neve. A parancs alapértelmezetten a képernyőre írja az adatokat. Ezt egy „>” karakterrel állományba irányíthatjuk.
mysqldump -u felhasználónév -p adatbázisnév > adatHalom.sql
Ellenőrizzük a létrehozott fájl első 5 sorát:
head -5 adatHalom.sql
Ha nem kell felhasználónév és jelszó (root felhasználóval):
mysqldump adatbázisnév > adatHalom.sql
Ha csak egy tábla szükséges:
mysqldump adatbázisnév táblannév > adatHalom.sql
Adatbázis importálása
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE new_database;
mysql -u felhasználónév -p adatbázis < adatHalom.sql
# mariadb -D dbname < dbname.sql
Táblaműveletek
Tábla ürítése:
DELETE FROM táblanév;
Csak egy sor törlése:
DELETE FROM táblanév WHERE mező=érték;
Távoli hozzáférés
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Keressük meg a bind-address sort és tegyük megjegyzésbe:
#bind-address = 127.0.0.1
systemctl restart mariadb
grant all privileges on dbnev.* to 'felhasznalonev'@'%' identified by 'titok';
Ellenőrzés:
mysql -u user -p -e 'show grants for felhasznalonev@"%"' mysql
Távolról:
mysql -u nev -p -h ip_cim -e 'select * from dbnev'
Adatbázis másolása
Rendszergazdaként:
mysqldump forrasDb | mysql celDb
phpMyAdmin
apt install phpmyadmin
Adjuk meg egy jelszót, amivel elérheti a PhpMyAdmin beállításait tárolhatja adatbázisban.
SQL doboz fontmérete
- js/vendor/codemirror/lib/codemirror.css
.CodeMirror { ... font-size: 2em; }
MariaDB PAM azonosítás
apt update apt install mariadb-server libmariadb-dev
nano /etc/pam.d/mariadb
auth required pam_unix.so account required pam_unix.so
usermod -a -G shadow mysql
adduser feri
Kapcsolódunk a MariaDB szerverhez, rendszergazdaként:
mysql
A következő SQL parancsot kiadjuk:
install soname 'auth_pam';
create user 'feri'@'%' identified via pam using 'mariadb'; grant all on *.* to 'feri'@'%'; exit;
Most belépünk feriként:
mysql
select user(), current_user();