Android

Hoe mysql-databases en gebruikers te beheren vanaf de opdrachtregel

Adventures In BASH: Hoe maak je een website in 2020 ! | Kumputer Kar

Adventures In BASH: Hoe maak je een website in 2020 ! | Kumputer Kar

Inhoudsopgave:

Anonim

MySQL is het populairste open-source relationele databasebeheersysteem. Met de MySQL-server kunnen we talloze gebruikers en databases maken en de juiste rechten verlenen zodat gebruikers toegang hebben tot databases en deze kunnen beheren.

In deze zelfstudie wordt uitgelegd hoe u de opdrachtregel gebruikt om MySQL- of MariaDB-databases en -gebruikers te maken en te beheren.

Voordat je begint

Voordat u met deze zelfstudie begint, gaan we ervan uit dat u MySQL- of MariaDB-server al op uw systeem heeft geïnstalleerd. Alle opdrachten worden als rootgebruiker uitgevoerd.

Om de MySQL-prompt te openen, typt u de volgende opdracht en voert u het MySQL-rootgebruikerswachtwoord in wanneer daarom wordt gevraagd:

mysql -u root -p

Maak een nieuwe MySQL-database

Om een ​​nieuwe MySQL-database te maken, voert u de volgende opdracht uit, vervangt u gewoon database_name door de naam van de database die u wilt maken:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

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

Om fouten te voorkomen als de database met dezelfde naam die u probeert te maken bestaat, kunt u de volgende opdracht gebruiken:

CREATE DATABASE IF NOT EXISTS database_name;

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

In de bovenstaande output betekent Query OK dat de zoekopdracht succesvol was en 1 warning geeft aan dat de database al bestaat en dat er geen nieuwe database is gemaakt.

Lijst met alle MySQL-databases

U kunt alle databases op onze MySQL- of MariaDB-server weergeven met de volgende opdracht:

SHOW DATABASES;

De uitvoer ziet er ongeveer zo uit:

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

De databases met information_schema , mysql , performance_schema en sys worden tijdens de installatie gemaakt en ze slaan informatie op over alle andere databases, systeemconfiguratie, gebruikers, machtigingen en andere belangrijke gegevens. Deze databases zijn nodig voor de juiste functionaliteit van de MySQL-installatie.

Verwijder een MySQL-database

Een MySQL-database verwijderen is net zo eenvoudig als het uitvoeren van een enkele opdracht. Dit is een niet-omkeerbare actie en moet met voorzichtigheid worden uitgevoerd. Zorg ervoor dat u geen verkeerde database verwijdert, want zodra u de database verwijdert, kan deze niet meer worden hersteld.

Voer de volgende opdracht uit om een ​​MySQL of MariaDB te verwijderen:

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

Om deze fout te voorkomen, kunt u de volgende opdracht gebruiken:

DROP DATABASE IF EXISTS database_name;

Maak een nieuw MySQL-gebruikersaccount

Een gebruikersaccount in MySQL bestaat uit een gebruikersnaam en een hostnaam.

Om een ​​nieuw MySQL-gebruikersaccount te maken, voert u de volgende opdracht uit, vervangt u gewoon 'database_user' door de naam van de gebruiker die u wilt maken:

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

In de bovenstaande opdracht hebben we het hostnaamgedeelte ingesteld op localhost wat betekent dat deze gebruiker alleen verbinding kan maken met de MySQL-server vanaf de localhost (dat wil zeggen vanaf het systeem waarop MySQL Server wordt uitgevoerd). Als u toegang wilt verlenen vanaf een andere host (s), wijzigt u gewoon de localhost met het IP-adres van de externe machine of gebruikt u '%' jokerteken '%' voor het hostgedeelte, wat betekent dat de gebruikersaccount verbinding kan maken met elke host.

Hetzelfde als bij het werken met de databases om een ​​fout te voorkomen bij het maken van een reeds bestaande gebruikersaccount die u kunt gebruiken:

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

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

Wijzig een MySQL-gebruikersaccountwachtwoord

De syntaxis voor het wijzigen van het wachtwoord van een MySQL- of MariaDB-gebruikersaccount hangt af van de serverversie die u op uw systeem uitvoert.

U kunt uw serverversie vinden door de volgende opdracht te geven:

mysql --version

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

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

In beide gevallen moet de uitvoer er als volgt uitzien:

Query OK, 0 rows affected (0.00 sec)

Lijst met alle MySQL-gebruikersaccounts

U kunt alle MySQL- of MariaDB-gebruikersaccounts weergeven door de tabel mysql.users op te vragen:

SELECT user, host FROM mysql.user;

De output moet er ongeveer zo uitzien:

+------------------+-----------+ | 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)

Verwijder MySQL-gebruikersaccount

Gebruik de volgende opdracht om een ​​gebruikersaccount te verwijderen:

DROP USER 'database_user@'localhost';

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

Hetzelfde als bij het werken met de databases om de fout te voorkomen die u kunt gebruiken:

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

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

Verleen machtigingen aan een MySQL-gebruikersaccount

Er zijn meerdere soorten rechten die aan een gebruikersaccount kunnen worden verleend. Hier vindt u een volledige lijst met rechten die door MySQL worden ondersteund. In deze gids zullen we verschillende voorbeelden doornemen:

Gebruik de volgende opdracht om alle rechten voor een gebruikersaccount voor een specifieke database te vermenigvuldigen:

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

Gebruik de volgende opdracht om alle rechten voor een gebruikersaccount over alle databases te vermenigvuldigen:

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

Gebruik de volgende opdracht om alle rechten voor een gebruikersaccount voor een specifieke tabel uit een database te bepalen:

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

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

Toestemmingen van een MySQL-gebruikersaccount intrekken

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

MySQL-gebruikersaccountrechten weergeven

Ga als volgt te werk om de privileges te vinden die aan een specifiek MySQL-gebruikersaccounttype zijn verleend:

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)

Conclusie

Deze tutorial behandelt alleen de basis, maar het zou een goed begin moeten zijn voor iedereen die wil leren hoe MySQL-databases en gebruikers te beheren vanaf de opdrachtregel. U kunt ook de tutorial raadplegen over het resetten van een MySQL-rootwachtwoord voor het geval u het bent vergeten.

Dat is alles! Als u vragen of feedback heeft, kunt u een reactie achterlaten.

mysql mariadb