====== MariaDB ====== **Na této stránce se nachází návod, jak do linuxové distribuce Debian nainstalovat MariaDB pro potřeby Shibboleth IdP.** ---- ===== Instalace ===== Databázi //MariaDB// nainstalujeme následujícím příkazem: # Instalace MariaDB apt install --no-install-recommends mariadb-server mariadb-client libmariadb-java Pomocí ''openssl'' si vygenerujeme silné heslo pro přístup k databázi uživatelem //root//: # Vygenerování silného hesla pro uživatele root openssl rand -hex 20 Spustíme utilitu ''mysql_secure_installation'' a postupujeme dle instrukcí v terminálu: # Spuštení mysql_secure_installation mysql_secure_installation ===== Databáze ===== **Máme-li persistentní identifikátory ze stávající instalace Shibboleth IdP, databázi si samozřejmě přesuneme.** Na stávajícím serveru provedeme export: mysqldump shibboleth > ~/persistentIDs.sql Soubor ''persistentIDs.sql'' bezpečně překopírujeme na nový server, např. pomocí ''scp'', a po vytvoření databáze //shibboleth// importujeme stávající identifikátory: mysql -u root -p shibboleth < ~/persistentIDs.sql Přihlásíme se do //MariaDB//: # Přihlášení k MariaDB mysql Vytvoříme databázi //shibboleth// a v ní tabulku //shibpid//. # Vytvoříme databázi 'shibboleth' a tabulku 'shibpid' SET NAMES 'utf8'; SET CHARACTER SET utf8; CHARSET utf8; CREATE DATABASE IF NOT EXISTS shibboleth CHARACTER SET=utf8; USE shibboleth; CREATE TABLE IF NOT EXISTS `shibpid` ( `localEntity` VARCHAR(255) NOT NULL, `peerEntity` VARCHAR(255) NOT NULL, `principalName` VARCHAR(255) NOT NULL DEFAULT '', `localId` VARCHAR(255) NOT NULL, `persistentId` VARCHAR(50) NOT NULL, `peerProvidedId` VARCHAR(255) DEFAULT NULL, `creationDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deactivationDate` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`localEntity`, `peerEntity`, `persistentId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Pomocí příkazu ''DESCRIBE'' si můžeme zobrazit, jak tabulka vypadá. # Zobrazení definice tabulky 'shibpid' DESCRIBE shibpid; Tabulka //shibpid// musí vypadat následovně: +------------------+--------------+------+-----+---------------------+-------------------------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------------------+-------------------------------+ | localEntity | varchar(255) | NO | PRI | NULL | | | peerEntity | varchar(255) | NO | PRI | NULL | | | principalName | varchar(255) | NO | | | | | localId | varchar(255) | NO | | NULL | | | persistentId | varchar(50) | NO | PRI | NULL | | | peerProvidedId | varchar(255) | YES | | NULL | | | creationDate | timestamp | NO | | current_timestamp() | on update current_timestamp() | | deactivationDate | timestamp | YES | | NULL | | +------------------+--------------+------+-----+---------------------+-------------------------------+ 8 rows in set (0.002 sec) Dále vytvoříme tabulku //StorageRecords//. # Vytvoříme tabulku 'StorageRecords' CREATE TABLE IF NOT EXISTS `StorageRecords` ( context varchar(255) COLLATE utf8mb4_bin NOT NULL, id varchar(255) COLLATE utf8mb4_bin NOT NULL, expires bigint DEFAULT NULL, value text NOT NULL, version bigint NOT NULL, PRIMARY KEY (context, id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Pomocí příkazu ''DESCRIBE'' si můžeme zobrazit, jak tabulka vypadá. # Zobrazení definice tabulky 'StorageRecords' DESCRIBE StorageRecords; Tabulka //StorageRecords// musí vypadat následovně: +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | context | varchar(255) | NO | PRI | NULL | | | id | varchar(255) | NO | PRI | NULL | | | expires | bigint(20) | YES | | NULL | | | value | text | NO | | NULL | | | version | bigint(20) | NO | | NULL | | +---------+--------------+------+-----+---------+-------+ 5 rows in set (0.001 sec) Vytvoříme uživatele //shibboleth//, který bude k databázi přistupovat pomocí silného hesla, které si opět vygenerujeme pomocí příkazu ''openssl'': # Vygenerování silného hesla pro uživatele 'shibboleth' openssl rand -hex 20 Vytvoříme uživatele //shibboleth// a použijeme výše vygenerované silné heslo: # Vytvoření uživatele 'shibboleth' GRANT ALL PRIVILEGES ON shibboleth.* TO 'shibboleth'@'localhost' IDENTIFIED BY '___SILNE_HESLO_VYGENEROVANE_VYSE___'; FLUSH PRIVILEGES; Pro ověření funkčnosti vytvořeného účtu se pokusíme přihlásit k databázi. # Přihlášení k MariaDB uživatelem 'shibboleth' mysql -u shibboleth -p shibboleth Terminál vyzve k zadání hesla a po jeho úspěšném ověření dojde k přihlášení k MariaDB. Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. [...] MariaDB [shibboleth]> ---- **Máme-li nainstalovanou MariaDB, můžeme pokračovat instalací [[jetty]].**