S vydáním CentOS 7 nahradila MariaDB MySQL jako výchozí databázový systém. MariaDB byla vytvořena původními vývojáři MySQL a je vylepšenou, drop-in náhradou za MySQL s binární ekvivalencí knihoven a přesnou shodou s MySQL API a příkazy.
Tento článek popisuje základní instalaci databázového serveru MariaDB na CentOS Linux. Možná budete muset nainstalovat další balíčky, aby aplikace mohly používat MariaDB, jako jsou rozšíření pro PHP. Podrobnosti naleznete v dokumentaci aplikace.
Instalace databázového serveru
Při instalaci základního databázového serveru postupujte podle kroků v této části.
Nainstalujte MariaDB
Nainstalujte server MariaDB prostřednictvím správce balíčků CentOS (yum) spuštěním následujícího příkazu na příkazovém řádku:
sudo yum install mariadb-server
Povolit vzdálený přístup
Chcete-li povolit vzdálený přístup, spusťte následující příkaz:
firewall-cmd --zone=public --add-service=mysql --permanent
Nastavte heslo uživatele root
Protože jste právě nainstalovali databázový server MariaDB, rootaccount nemá nastaveno žádné heslo. Pomocí následujícího příkazu nastavte heslo uživatele root a další důležitá nastavení:
/usr/bin/mysql_secure_installation
Spuštění a zastavení databázové služby
Po dokončení instalace můžete spustit databázovou službu pomocí příkazů v této části. Pokud je systém již spuštěn, zobrazí se zpráva s informací, že služba již běží.
Ke spuštění MariaDB použijte následující příkaz:
sudo systemctl start mariadb.service
K zastavení MariaDB použijte následující příkaz:
sudo systemctl stop mariadb.service
Spustit při restartu
Chcete-li zajistit spuštění databázového serveru po restartu, musíte povolit chkconfig
utility. K tomu použijte následující příkaz:
sudo systemctl enable mariadb.service
Spuštění prostředí MariaDB
Existuje více než jeden způsob práce se serverem MariaDB, ale tento článek se zaměřuje na nejzákladnější a nejkompatibilnější přístup:mariadb
shell.
-
Na příkazovém řádku spusťte následující příkaz pro spuštění shellu a zadejte jej jako uživatel root:
/usr/bin/mysql -u root -p
-
Až budete vyzváni k zadání hesla, zadejte heslo, které jste nastavili při instalaci, nebo pokud jste ho nenastavili, stiskněte Enter odeslat žádné heslo.
Měla by se zobrazit následující výzva prostředí:
MariaDB [(none)]>
Zobrazit uživatele
MariaDB a MySQL ukládají informace o uživatelích do svých vlastních databází. Název databáze je mysql . Uvnitř této databáze jsou informace o uživateli v tabulce, datové sadě s názvem uživatel . Pokud chcete vidět, jací uživatelé jsou nastaveni v uživatelské tabulce MySQL, spusťte následující příkaz:
SELECT User, Host, Password FROM mysql.user;
Následující seznam popisuje části tohoto příkazu:
- VYBRAT říká MySQL, že žádáte o data.
- Uživatel, hostitel, heslo říká MySQL, do jakých polí má nahlížet. Pole jsou kategorie pro data v tabulce. V tomto případě hledáte uživatelské jméno, hostitele spojeného s uživatelským jménem a zašifrované heslo.
- Z mysql.user říká MySQL, aby získala data z mysql databázi a uživatele stůl.
- Středník (;) ukončí příkaz.
Uživatelští hostitelé
Následující příklad je výstupem pro předchozí dotaz:
SELECT User, Host, Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | Password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | 127.0.0.1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | ::1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
+------------------+-----------+-------------------------------------------+
Uživatelé jsou přidruženi k hostiteli, konkrétně k hostiteli, ke kterému se připojují. Uživatel root je v tomto příkladu definován pro localhost , pro IP adresu localhost a název hostitele serveru. Obvykle potřebujete nastavit uživatele pouze pro hostitele, ze kterého se obvykle připojujete.
Pokud aplikaci spouštíte na stejném počítači jako server MariaDB, hostitel, ke kterému se připojuje, je ve výchozím nastavení localhost . Všichni noví uživatelé, které vytvoříte, musí mít localhost v jejich hostiteli pole.
Pokud se vaše aplikace připojuje vzdáleně, hostitel záznam, který MariaDB hledá, je IP adresa nebo název hostitele DNS vzdáleného počítače (toho, ze kterého klient přichází).
Vytvořte databázi
Mezi databázovým serverem je rozdíl a databázi , i když se tyto termíny často používají zaměnitelně. MariaDB je databázový server, což znamená, že sleduje databáze a řídí přístup k nim. Databáze ukládá data a je to databáze, ke které se aplikace pokoušejí přistupovat při interakci s MariaDB.
Některé aplikace vytvářejí databázi jako součást procesu nastavení, ale jiné vyžadují, abyste vytvořili databázi a informovali o tom aplikaci.
Chcete-li vytvořit databázi, přihlaste se do mariadb
shell a spusťte následující příkaz nahrazující demodb
s názvem databáze, kterou chcete vytvořit:
CREATE DATABASE demodb;
Databáze je vytvořena. Jeho vytvoření můžete ověřit spuštěním dotazu na seznam všech databází. Následující příklad ukazuje dotaz a příklad výstupu:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demodb |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
Správa uživatelů a oprávnění
Pomocí pokynů v této části přidejte uživatele do databáze a udělte a odeberte oprávnění.
Přidat uživatele a oprávnění
Když se aplikace připojují k databázi pomocí uživatele root, mají obvykle více oprávnění, než potřebují. Můžete vytvořit nového uživatele, kterého mohou aplikace používat k připojení k nové databázi. V následujícím příkladu uživatel jménem demouser je vytvořen.
Chcete-li vytvořit nového uživatele, spusťte následující příkaz v mariadb
shell:
CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'demopassword';
Můžete ověřit, že byl uživatel vytvořen znovu spuštěním dotazu SELECT:
SELECT User, Host, Password FROM mysql.user;
+----------+-----------+------------------------------------------+
| User | Host | Password |
+----------+-----------+------------------------------------------+
| root | localhost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | demohost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1 | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| demouser | localhost | 0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+----------+-----------+------------------------------------------+
Udělit uživatelská oprávnění databáze
Ihned po vytvoření nového uživatele nemá žádná oprávnění. Uživatele lze použít k přihlášení do MariaDB, ale nelze jej použít k provádění jakýchkoli změn v databázi.
-
Udělte uživateli plná oprávnění pro vaši novou databázi spuštěním následujícího příkazu:
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
-
Aby se změna projevila, vyprázdněte oprávnění.
FLUSH PRIVILEGES;
-
Chcete-li ověřit, zda byla oprávnění nastavena, spusťte následující příkaz:
SHOW GRANTS FOR 'demouser'@'localhost';
MariaDB vrátí příkazy potřebné k reprodukci oprávnění daného uživatele, pokud byste server přestavěli.
USAGE on \*.\*
znamená, že uživatel ve výchozím nastavení nezíská žádná oprávnění. Tento příkaz je přepsán druhým příkazem, což je povolení, které jste spustili pro novou databázi.+-----------------------------------------------------------------------------------------------------------------+ | Grants for demouser@localhost | +-----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' | | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost' | +-----------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Odebrat oprávnění
Někdy může být nutné zrušit (odebrat) oprávnění uživatele. Předpokládejme například, že jste udělovali ALL
oprávnění pro ‘demouser’@’localhost’, ale omylem jste udělili oprávnění i všem ostatním databázím, jak je znázorněno v následujících příkazech:
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON *.* TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Chcete-li chybu opravit, můžete použít REVOKE
následovaný příkazem GRANT
pro použití správných oprávnění.
REVOKE ALL ON *.* FROM demouser@localhost;
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
SHOW GRANTS FOR 'demouser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON 'demodb'TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Nyní má váš uživatel správná oprávnění a váš databázový server je o něco bezpečnější (udělování oprávnění jako ALL on *.*
je považováno za velmi špatnou praxi). Měli byste si také přečíst oficiální dokumentaci MariaDB týkající se možných voleb oprávnění, abyste udělili pouze ta oprávnění, která jsou skutečně potřebná, místo použití ALL
.
Přehled
Pokud právě vytváříte databázi a uživatele, máte hotovo. Koncepty obsažené v tomto článku by vám měly poskytnout solidní začátek, ze kterého se dozvíte více.