A MariaDB tulajdonképpen egy MySQL fork, amely azért jött létre, hogy biztosítsa a MySQL környezet nyílt forráskódú megvalósítását, mivel a MySQL-nek új tulajdonosa lett, és az internetes közösség attól tartott nem marad a MySQL nyílt licencű.
2013-ban még külön tárolót kellett felvenni a MariaDB telepítéséhez. 2015-ben a MySQL és a MariaDB is telepíthető volt, de egymással „konfliktban”. 2017-ben már csak a MaraiDB telepíthető.
choco install mariadb
Tegyük útvonalba:
c:\Program Files\MariaDB 11.1\bin\
Így lesz egy kliens program is mariadb néven.
A szolgáltatások között mysql néven kell keresni:
sc query mysql
A Debian alapú rendszerek, ma (2017), már alapértelmezetten a MariaDB szervert telepítik, még ha a mysql-server csomagot telepítem, akkor is.
A MariaDB telepítéséhez:
apt install mariadb-server
Ha megnézzük a futó folyamatokat, akkor a következő folyamatot láthatjuk:
/usr/sbin/mysqld
Ami valójában egy MariaDB szerver.
Felhasználók listázása:
select User from mysql.user;
Létrehozás:
create user 'janos'@'localhost';
Létrehozás jelszóval:
create user 'janos'@'localhost' identified by 'titok';
Létrehozás jelszóval, jogok beállításával:
grant all privileges on janosAdatbazisa.* to 'janos'@'localhost';
Felhasználók törlése:
drop user 'joska'@'localhost';
Ha szeretnénk UNIX_SOCKET-et beállítani egy felhasználónak:
create user 'janos' identified via unix_socket;
Felhasználók megtekintése:
select user, password, plugin from user;
vagy:
select user, password, plugin from user\G;
Milyen jogai vannak a janos felhasználónak:
show grants for 'janos'@'localhost';
Biztonsági beállításokhoz használjuk a következő scriptet:
# mysql_secure_installation
A következőket teszi lehetővé:
Debian 9 és 10 rendszeren szükségtelen a használata, mert alapértelmezetten:
A MariaDB szerver mellé feltelepszik egy kliens is, amit mysql parancsként használhatunk. A korábbi MySQL szerverek mellé is ez a parancssoros klienst települt.
Indítása tehát:
# mysql
Vagy:
# mariadb
A Debian 9 verziójától a MariaDB a UNIX_SOCKET hitelesítő kiterjesztéssel telepszik, és a root felhasználó számára ez be is van állítva. A 9-es verziótól az is változás, hogy csak egyetlen root felhasználót kapunk. A mysql klienssel rendszergazdaként jelszó nélkül be tudunk jelentkezni, köszönhetően a UNIX_SOCKET kiterjesztésnek. Ez persze azt is jelenti, hogy ha megadunk egy jelszót, még azt sem veszi figyelembe.
UNIX_SOCKET esetén, a Linuxon bejelentkezett felhasználó már egyszer hitelesítette magát. Ha ez a root felhasználó, akkor MariaDB szerveren nem kell root felhasználóként újra azonosítást végeznie.
A kiterjesztés beállítható a más felhasználók számára is, lásd Felhasználók kezelése.
Adatbázis kiválasztása:
use dbnev
Adatbázis ne legyen kiválasztva:
create database a; use a; drop database a;
A mycli csomag parancskiegészítés lehetősége. Telepítése:
apt install mycli
Bejelentkezés hasonló a mysql kliensnél megszokottal:
mycli -u janos -p
Telepítés:
apt install sqlline
Az sqlline indítása:
$ sqlline -d com.mysql.jdbc.Driver
Kapcsolódás adatbázishoz:
sqlline> !connect jdbc:mysql://localhost:3306/test01 janos titok
A kapcsolódás eredménye:
sqlline> !connect jdbc:mysql://localhost:3306/test01 janos titok Connecting to jdbc:mysql://localhost:3306/test01 Connected to: MySQL (version 5.5.5-10.1.23-MariaDB-9+deb9u1) Driver: MySQL Connector Java (version mysql-connector-java-5.1.42 ( Revision: ${revinfo.commit} )) Autocommit status: true Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:mysql://localhost:3306/test01> !tables +------------+--------------+-------------+-------------+----------+----------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_CAT | +------------+--------------+-------------+-------------+----------+----------+ +------------+--------------+-------------+-------------+----------+----------+ 0: jdbc:mysql://localhost:3306/test01>
Tábla létrehozása:
0: jdbc:mysql://localhost:3306/test01> create table szemelyek ( nev varchar(50));
apt install phpmyadmin php-mbstring php-gettext
Böngészőbe írjuk be:
http://localhost/phpmyadmin/
Webes felületen nem tudunk belépni rootként, ha be van kapcsolva a unix_socket. Ezért kapcsoljuk ki, ha ezt szeretnénk:
# mysql -u root -p mysql
MariaDB [mysql]> update user set plugin='' where user='root'; MariaDB [mysql]> SET password = password('titok') ; MariaDB [mysql]> flush privileges;
CREATE DATABASE dbnev; GRANT ALL PRIVILEGES ON dbnev.* TO 'janos'@'localhost' IDENTIFIED BY 'titok'; FLUSH PRIVILEGES;
Valós típusok | |||||
---|---|---|---|---|---|
Precizitás | előjel bitek | exponens [bitek] | mantisza [bitek] | exponens [ decimálisan ] | tartomány [ decimálisan ] |
Single | 1 | 8 | 24 | -38-tól – +35 | 7 számjegy |
Double | 1 | 11 | 53 | -304-tól – +308 | 15 számjegy |
Tábla létrehozása;
MariaDB [Ketto]> create table Tabla_1 (fizetes float);
Az RLIKE használata lehetővé teszi a szabályos kifejezések használatát:
MariaDB [zoldZrt]> select nev from Szemelyek where nev rlike "^a.*";
SELECT sha2("titok", 512);
A mariadb-client-10.1 csomaggal telepítésre kerül a innotop nevű parancs is. Az innotop egy top klón, MariaDB vagy MySQL számára.
Indítása:
innotop
vagy:
innotop -u root
esetleg:
innotop -h 127.0.0.1 -u root -p titok
A felület:
[RO] Dashboard (? for help) localhost, 2h27m, 0.40 QPS, 1/1/2 con/run/cac thds, Uptime MaxSQL ReplLag QPS Cxns Run Miss Lock Tbls Repl SQL 2h27m 0.40 1 0.00 0 27
A „@” karakterrel kezdeményezhető új konfiguráció:
You can enter the name of a new connection to create it. ____________________________ Choose from ____________________________ localhost DBI:mysql:;host=localhost;mysql_read_default_group=client Choose connections for this mode: helyi There is no connection called 'helyi'. Create it?: y
Következő lépés:
Typical DSN strings look like DBI:mysql:;host=hostname;port=port The db and port are optional and can usually be omitted. If you specify 'mysql_read_default_group=mysql' many options can be read from your mysql options files (~/.my.cnf, /etc/my.cnf). Enter a DSN string: DBI:mysql:;host=localhost
Következő lépés:
Optional: enter a table (must not exist) to use when resetting InnoDB deadlock information: Do you want to specify a username for helyi?: y Do you want to specify a password for helyi?: y Enter username for helyi: root Enter password for 'root' on helyi: Save password in plain text in the config file?: y
Eredmény:
[RO] Dashboard (? for help) helyi, 2h25m, 0.30 QPS, 2/1/1 con/run/cac thds, 10.1 Uptime MaxSQL ReplLag QPS Cxns Run Miss Lock Tbls Repl SQL 2h25m 0.30 2 0.00 0 27
A -h -u -p kapcsolókkal megadott adatok az újraindítás után elvesznek. Ha szeretnénk menteni, akkor használjuk a --write kapcsolót:
innotop --write
Ha a konfiguráció mentésre került, akkor a létrejön egy a következő könyvtár:
~/.innotop
Benne a konfigurációs állomány és a kiegészítők számára egy könyvtár.
ls -l .innotop összesen 8 -rw------- 1 root root 2712 júl 10 10:48 innotop.conf drwxr-xr-x 2 root root 4096 júl 10 10:48 plugins
USE mysql SELECT USER, authentication_string, plugin, host FROM USER;
DELETE FROM table
Több csomagból:
Maximum 3 kapcsolat: