Android

Jak spravovat databáze mysql a uživatele z příkazového řádku

Azure Friday | Cassandra API for Azure Cosmos DB

Azure Friday | Cassandra API for Azure Cosmos DB

Obsah:

Anonim

MySQL je nejoblíbenější systém správy relačních databází s otevřeným zdrojovým kódem. Server MySQL nám umožňuje vytvářet četné uživatele a databáze a udělovat příslušná oprávnění, aby uživatelé mohli přistupovat a spravovat databáze.

Tento tutoriál vysvětluje, jak používat příkazový řádek k vytváření a správě databází a uživatelů MySQL nebo MariaDB.

Než začnete

Než začnete s tímto tutoriálem, předpokládáme, že již máte nainstalovaný server MySQL nebo MariaDB ve vašem systému. Všechny příkazy budou provedeny jako uživatel root.

Chcete-li otevřít výzvu MySQL, zadejte následující příkaz a po zobrazení výzvy zadejte heslo uživatele root root MySQL:

mysql -u root -p

Vytvořte novou databázi MySQL

Chcete-li vytvořit novou databázi MySQL, spusťte následující příkaz, stačí nahradit database_name názvem databáze, kterou chcete vytvořit:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

Chcete-li se vyhnout chybám, pokud existuje databáze se stejným názvem, kterou se pokoušíte vytvořit, můžete použít následující příkaz:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

Ve výstupu výše znamená Query OK , že dotaz byl úspěšný a 1 warning nám říká, že databáze již existuje a nebyla vytvořena žádná nová databáze.

Seznam všech databází MySQL

Všechny databáze, které existují na našem serveru MySQL nebo MariaDB, můžete vypsat pomocí následujícího příkazu:

SHOW DATABASES;

Výstup bude vypadat asi takto:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Databáze information_schema , mysql , performance_schema a sys jsou vytvářeny v době instalace a ukládají informace o všech ostatních databázích, konfiguraci systému, uživatelích, oprávnění a dalších důležitých datech. Tyto databáze jsou nezbytné pro správnou funkčnost instalace MySQL.

Odstraňte databázi MySQL

Odstranění databáze MySQL je stejně jednoduché jako spuštění jediného příkazu. Jedná se o nevratnou akci a měla by být provedena opatrně. Ujistěte se, že neodstraňujete nesprávnou databázi, protože jakmile odstraníte databázi, nelze ji obnovit.

Chcete-li odstranit MySQL nebo MariaDB, spusťte databázi následující příkaz:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Chcete-li se této chybě vyhnout, použijte následující příkaz:

DROP DATABASE IF EXISTS database_name;

Vytvořte nový uživatelský účet MySQL

Uživatelský účet v MySQL se skládá z částí uživatelského jména a názvu hostitele.

Chcete-li vytvořit nový uživatelský účet MySQL, spusťte následující příkaz, stačí nahradit 'database_user' jménem uživatele, kterého chcete vytvořit:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Ve výše uvedeném příkazu jsme nastavili část hostname na localhost což znamená, že se tento uživatel bude moci připojit k serveru MySQL pouze z localhost (tj. Ze systému, kde běží MySQL Server). Pokud chcete udělit přístup z jiného hostitele, stačí změnit localhost pomocí IP vzdáleného počítače nebo použít zástupnou část '%' pro hostitelskou část, což znamená, že uživatelský účet se bude moci připojit z jakéhokoli hostitele.

Stejně jako při práci s databázemi, abyste se vyhnuli chybě při pokusu o vytvoření uživatelského účtu, který již existuje, můžete použít:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Změňte heslo uživatelského účtu MySQL

Syntaxe pro změnu hesla uživatelského účtu MySQL nebo MariaDB závisí na verzi serveru, kterou používáte v systému.

Verze serveru můžete najít zadáním následujícího příkazu:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

V obou případech by výstup měl vypadat takto:

Query OK, 0 rows affected (0.00 sec)

Seznam všech uživatelských účtů MySQL

Všechny uživatelské účty MySQL nebo MariaDB můžete vypsat pomocí dotazu v tabulce mysql.users :

SELECT user, host FROM mysql.user;

Výstup by měl vypadat podobně jako níže:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Odstranit uživatelský účet MySQL

Chcete-li odstranit uživatelský účet, použijte následující příkaz:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Stejné jako při práci s databázemi, aby nedošlo k chybě, kterou můžete použít:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Udělte oprávnění uživatelskému účtu MySQL

Uživatelskému účtu lze udělit více typů oprávnění. Úplný seznam oprávnění podporovaných MySQL najdete zde. V této příručce si ukážeme několik příkladů:

Chcete-li zpřístupnit všechna oprávnění k uživatelskému účtu přes konkrétní databázi, použijte následující příkaz:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Chcete-li zpřístupnit všechna oprávnění k uživatelskému účtu ve všech databázích, použijte následující příkaz:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Chcete-li zpřístupnit všechna oprávnění k uživatelskému účtu přes konkrétní tabulku z databáze, použijte následující příkaz:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Zrušit oprávnění z uživatelského účtu MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Zobrazit oprávnění uživatelského účtu MySQL

Chcete-li najít oprávnění udělená konkrétnímu typu uživatelského účtu MySQL:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Závěr

Tento tutoriál pokrývá pouze základy, ale měl by být dobrý začátek pro každého, kdo se chce naučit, jak spravovat databáze MySQL a uživatele z příkazového řádku. Můžete také zkontrolovat návod, jak resetovat root heslo MySQL v případě, že jste jej zapomněli.

To je vše! Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.

mysql mariadb