Android

Hur man hanterar mysql-databaser och användare från kommandoraden

Class #3.2 : MYSQL Database DemoHow to create database, tables and run queries.

Class #3.2 : MYSQL Database DemoHow to create database, tables and run queries.

Innehållsförteckning:

Anonim

MySQL är det mest populära databashanteringssystemet med öppna källor. MySQL-server låter oss skapa flera användare och databaser och bevilja lämpliga behörigheter så att användare kan komma åt och hantera databaser.

Denna handledning förklarar hur man använder kommandoraden för att skapa och hantera MySQL- eller MariaDB-databaser och användare.

Innan du börjar

Innan du börjar med denna handledning antar vi att du redan har MySQL eller MariaDB-server installerad på ditt system. Alla kommandon kommer att köras som rotanvändare.

Om du vill öppna MySQL-prompten skriver du följande kommando och anger lösenordet för MySQL-rootanvändaren när du uppmanas:

mysql -u root -p

Skapa en ny MySQL-databas

För att skapa en ny MySQL-databas, kör följande kommando, byt bara ut database_name med namnet på databasen som du vill skapa:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

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

För att undvika fel om databasen med samma namn som du försöker skapa finns kan du använda följande kommando:

CREATE DATABASE IF NOT EXISTS database_name;

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

I utgången ovan betyder Query OK att frågan var framgångsrik och en 1 warning säger att databasen redan finns och att ingen ny databas skapades.

Lista alla MySQL-databaser

Du kan lista alla databaser som finns på vår MySQL eller MariaDB-server med följande kommando:

SHOW DATABASES;

Utgången ser ut så här:

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

information_schema , mysql , performance_schema och sys databaser skapas vid installationstiden och lagrar information om alla andra databaser, systemkonfiguration, användare, behörighet och annan viktig information. Dessa databaser är nödvändiga för att MySQL-installationen ska fungera korrekt.

Radera en MySQL-databas

Att ta bort en MySQL-databas är lika enkelt som att köra ett enda kommando. Detta är en icke-reversibel åtgärd och bör utföras med försiktighet. Se till att du inte tar bort en fel databas, eftersom när du har tagit bort databasen kan den inte återställas.

För att radera en MySQL eller MariaDB, kör databas följande kommando:

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

För att undvika detta fel kan du använda följande kommando:

DROP DATABASE IF EXISTS database_name;

Skapa ett nytt MySQL-användarkonto

Ett användarkonto i MySQL består av ett användarnamn och värdnamnsdelar.

För att skapa ett nytt MySQL-användarkonto, kör följande kommando, ersätt bara 'database_user' med namnet på den användare som du vill skapa:

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

I kommandot ovan har vi ställt in värdnamnsdelen till localhost vilket innebär att den här användaren endast kommer att kunna ansluta till MySQL-servern från localhost (dvs. från systemet där MySQL Server körs). Om du vill bevilja åtkomst från en annan värd (er) ändrar du bara localhost med fjärrmaskinens IP eller använder '%' jokertecken för värddelen, vilket innebär att användarkontot kan ansluta från vilken värd som helst.

Samma som när du arbetar med databaserna för att undvika ett fel när du försöker skapa ett användarkonto som redan finns som du kan använda:

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

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

Ändra ett lösenord för MySQL-användarkonto

Syntaxen för att ändra ett MySQL- eller MariaDB-användarkontolösenord beror på serverversionen du kör på ditt system.

Du kan hitta din serverversion genom att utfärda följande kommando:

mysql --version

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

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

I båda fallen bör utgången se ut så här:

Query OK, 0 rows affected (0.00 sec)

Lista alla MySQL-användarkonton

Du kan lista alla MySQL- eller MariaDB-användarkonton genom att fråga tabellen mysql.users :

SELECT user, host FROM mysql.user;

Utgången ska se ut som nedan:

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

Radera MySQL-användarkonto

För att radera ett användarkonto, använd följande kommando:

DROP USER 'database_user@'localhost';

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

Samma som när du arbetar med databaserna för att undvika det fel du kan använda:

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

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

Ge behörigheter till ett MySQL-användarkonto

Det finns flera typer av behörigheter som kan beviljas ett användarkonto. Här hittar du en fullständig lista över privilegier som stöds av MySQL. I den här guiden kommer vi att gå igenom flera exempel:

Om du vill granska alla behörigheter till ett användarkonto i en specifik databas använder du följande kommando:

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

Om du vill granska alla behörigheter till ett användarkonto över alla databaser använder du följande kommando:

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

Om du vill granska alla privilegier till ett användarkonto över en specifik tabell från en databas använder du följande kommando:

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

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

Återkalla behörigheter från ett MySQL-användarkonto

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

Visa behörigheter för MySQL-användarkonton

Så här hittar du de behörigheter som beviljats ​​en specifik MySQL-användarkontotyp:

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)

Slutsats

Denna handledning täcker bara grunderna, men det bör vara en bra start för alla som vill lära sig att hantera MySQL-databaser och användare från kommandoraden. Du kan också kontrollera handledning om hur du återställer ett MySQL-root-lösenord om du har glömt det.

Det är allt! Om du har några frågor eller feedback kan du lämna en kommentar.

mysql mariadb