Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:adatbazis-szerver:mariadb

< Adatbázis-szerver

MariaDB

  • Szerző: Sallai András
  • Copyright © Sallai András, 2017, 2018, 2019, 2020
  • Licenc: GNU Free Documentation License 1.3

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();

Források

oktatas/linux/adatbazis-szerver/mariadb.txt · Utolsó módosítás: 2021/09/06 22:05 szerkesztette: admin