Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
cs:tech:idp:mariadb:new [2020/03/26 20:12] jan.oppolzer@cesnet.cz [Databáze] |
— (aktuální) | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ====== 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: | ||
- | |||
- | <code bash> | ||
- | # Instalace MariaDB | ||
- | apt install --no-install-recommends mariadb-server mariadb-client libmariadb-java | ||
- | </code> | ||
- | |||
- | Pomocí ''openssl'' si vygenerujeme silné heslo pro přístup k databázi uživatelem //root//: | ||
- | |||
- | <code bash> | ||
- | # Vygenerování silného hesla pro uživatele root | ||
- | openssl rand -hex 20 | ||
- | </code> | ||
- | |||
- | Spustíme utilitu ''mysql_secure_installation'' a postupujeme dle instrukcí v terminálu: | ||
- | |||
- | <code bash> | ||
- | # Spuštení mysql_secure_installation | ||
- | mysql_secure_installation | ||
- | </code> | ||
- | |||
- | ===== Databáze ===== | ||
- | |||
- | <WRAP center tip 100%> | ||
- | **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: | ||
- | |||
- | <code mysql> | ||
- | mysqldump shibboleth > ~/persistentIDs.sql | ||
- | </code> | ||
- | |||
- | 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: | ||
- | |||
- | <code mysql> | ||
- | mysql -u root -p shibboleth < ~/persistentIDs.sql | ||
- | </code> | ||
- | </WRAP> | ||
- | |||
- | Přihlásíme se do //MariaDB//: | ||
- | |||
- | <code bash> | ||
- | # Přihlášení k MariaDB | ||
- | mysql | ||
- | </code> | ||
- | |||
- | Vytvoříme databázi //shibboleth// a v ní tabulky //shibpid// a //StorageRecords//. | ||
- | |||
- | <code mysql> | ||
- | # Vytvoříme databázi 'shibboleth' a tabulky 'shibpid' a 'StorageRecords' | ||
- | 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; | ||
- | CREATE TABLE IF NOT EXISTS `StorageRecords` ( | ||
- | `context` VARCHAR(255) NOT NULL, | ||
- | `id` VARCHAR(255) NOT NULL, | ||
- | `expires` BIGINT, | ||
- | `value` LONGTEXT NOT NULL, | ||
- | `version` BIGINT NOT NULL, | ||
- | PRIMARY KEY (context, id) | ||
- | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
- | </code> | ||
- | |||
- | Pomocí příkazu ''DESCRIBE'' si můžeme zobrazit, jak tabulky vypadají. | ||
- | |||
- | <code mysql> | ||
- | # Zobrazení definice tabulek 'shibpid' a 'StorageRecords' | ||
- | DESCRIBE shibpid; | ||
- | DESCRIBE StorageRecords; | ||
- | </code> | ||
- | |||
- | Tabulka //shibpid// musí vypadat následovně: | ||
- | |||
- | <code mysql> | ||
- | +------------------+--------------+------+-----+-------------------+-----------------------------+ | ||
- | | 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.00 sec) | ||
- | |||
- | +---------+--------------+------+-----+---------+-------+ | ||
- | | Field | Type | Null | Key | Default | Extra | | ||
- | +---------+--------------+------+-----+---------+-------+ | ||
- | | context | varchar(255) | NO | PRI | NULL | | | ||
- | | id | varchar(255) | NO | PRI | NULL | | | ||
- | | expires | bigint(20) | YES | | NULL | | | ||
- | | value | longtext | NO | | NULL | | | ||
- | | version | bigint(20) | NO | | NULL | | | ||
- | +---------+--------------+------+-----+---------+-------+ | ||
- | 5 rows in set (0.001 sec) | ||
- | </code> | ||
- | |||
- | 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'': | ||
- | |||
- | <code bash> | ||
- | # Vygenerování silného hesla pro uživatele 'shibboleth' | ||
- | openssl rand -hex 20 | ||
- | </code> | ||
- | |||
- | Vytvoříme uživatele //shibboleth// a použijeme výše vygenerované silné heslo: | ||
- | |||
- | <code mysql> | ||
- | # Vytvoření uživatele 'shibboleth' | ||
- | GRANT ALL PRIVILEGES ON shibboleth.* | ||
- | TO 'shibboleth'@'localhost' | ||
- | IDENTIFIED BY 'f6603c2fd2a48bc722c14ca88bb08a762f3478c4'; | ||
- | FLUSH PRIVILEGES; | ||
- | </code> | ||
- | |||
- | Pro ověření funkčnosti vytvořeného účtu se pokusíme přihlásit k databázi. | ||
- | |||
- | <code bash> | ||
- | # Přihlášení k MariaDB uživatelem 'shibboleth' | ||
- | mysql -u shibboleth -p shibboleth | ||
- | </code> | ||
- | |||
- | Terminál vyzve k zadání hesla a po jeho úspěšném ověření dojde k přihlášení k MariaDB. | ||
- | |||
- | <code bash> | ||
- | Enter password: | ||
- | Welcome to the MariaDB monitor. Commands end with ; or \g. | ||
- | [...] | ||
- | MariaDB [shibboleth]> | ||
- | </code> | ||
- | |||
- | ---- | ||
- | |||
- | **Máme-li nainstalovanou MariaDB, můžeme pokračovat instalací [[cs:tech:idp:jetty]].** | ||