Android

Sådan administreres mysql-databaser og brugere fra kommandolinjen

Building Dynamic Web Apps with Laravel by Eric Ouyang

Building Dynamic Web Apps with Laravel by Eric Ouyang

Indholdsfortegnelse:

Anonim

MySQL er det mest populære open source-relationsdatabasestyringssystem. MySQL server giver os mulighed for at oprette adskillige brugere og databaser og give passende privilegier, så brugerne kan få adgang til og administrere databaser.

Denne tutorial forklarer, hvordan man bruger kommandolinjen til at oprette og administrere MySQL eller MariaDB databaser og brugere.

Før du begynder

Inden du starter med denne tutorial, antager vi, at du allerede har MySQL eller MariaDB-server installeret på dit system. Alle kommandoer udføres som en rodbruger.

For at åbne MySQL-prompten, skriv følgende kommando og indtast MySQL root-brugeradgangskode, når du bliver bedt om det:

mysql -u root -p

Opret en ny MySQL-database

For at oprette en ny MySQL-database køre følgende kommando, skal du blot udskifte database_name med navnet på den database, du vil oprette:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

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

For at undgå fejl, hvis databasen med det samme navn, som du prøver at oprette eksisterer, kan du bruge følgende kommando:

CREATE DATABASE IF NOT EXISTS database_name;

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

I output ovenfor betyder Query OK , at forespørgslen var vellykket, og 1 warning fortæller os, at databasen allerede findes, og at der ikke blev oprettet en ny database.

Liste over alle MySQL-databaser

Du kan liste alle databaser, der findes på vores MySQL eller MariaDB-server med følgende kommando:

SHOW DATABASES;

Outputet ser sådan ud:

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

information_schema , mysql , performance_schema og sys databaserne oprettes på installationstidspunktet, og de lagrer oplysninger om alle andre databaser, systemkonfiguration, brugere, tilladelse og andre vigtige data. Disse databaser er nødvendige for, at MySQL-installationen fungerer korrekt.

Slet en MySQL-database

Sletning af en MySQL-database er så simpelt som at køre en enkelt kommando. Dette er en ikke-reversibel handling og bør udføres med forsigtighed. Sørg for, at du ikke fjerner en forkert database, da den ikke kan gendannes, når du først har slettet databasen.

For at slette en MySQL eller MariaDB, kører databasen følgende 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

For at undgå denne fejl kan du bruge følgende kommando:

DROP DATABASE IF EXISTS database_name;

Opret en ny MySQL brugerkonto

En brugerkonto i MySQL består af et brugernavn og værtsnavndele.

For at oprette en ny MySQL-brugerkonto, kør følgende kommando, skal du bare erstatte 'database_user' med navnet på den bruger, du vil oprette:

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

I kommandoen ovenfor har vi indstillet værtsnavnsdelen til localhost hvilket betyder, at denne bruger kun kan oprette forbindelse til MySQL-serveren fra localhost (dvs. fra det system, hvor MySQL Server kører). Hvis du vil give adgang fra en anden vært (e), skal du bare ændre localhost med den eksterne maskins IP eller bruge '%' jokertegn til værtsdelen, hvilket betyder, at brugerkontoen vil være i stand til at oprette forbindelse fra enhver vært.

Det samme som når du arbejder med databaserne for at undgå en fejl, når du prøver at oprette en brugerkonto, der allerede findes, og som du kan bruge:

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

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

Skift en MySQL-brugerkontoadgangskode

Syntaks til ændring af en MySQL- eller MariaDB-brugerkontoadgangskode afhænger af den serverversion, du kører på dit system.

Du kan finde din serverversion ved at udstede følgende kommando:

mysql --version

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

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

I begge tilfælde skal output se sådan ud:

Query OK, 0 rows affected (0.00 sec)

Liste over alle MySQL-brugerkonti

Du kan liste alle MySQL- eller MariaDB-brugerkonti ved at mysql.users spørgsmål til mysql.users tabellen:

SELECT user, host FROM mysql.user;

Outputet skal se ud som nedenfor:

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

Slet MySQL brugerkonto

For at slette en brugerkonto skal du bruge følgende kommando:

DROP USER 'database_user@'localhost';

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

Samme som når du arbejder med databaserne for at undgå den fejl, du kan bruge:

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

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

Giv tilladelser til en MySQL-brugerkonto

Der er flere typer privilegier, der kan tildeles en brugerkonto. Du kan finde en komplet liste over privilegier, der understøttes af MySQL her. I denne vejledning gennemgår vi flere eksempler:

Brug følgende kommando til at sammenstille alle privilegier til en brugerkonto over en bestemt database:

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

Brug følgende kommando til at sammenstille alle privilegier til en brugerkonto over alle databaser:

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

Brug følgende kommando til at sammenstille alle privilegier til en brugerkonto over en bestemt tabel fra en database:

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

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

Tilbagekald tilladelser fra en MySQL-brugerkonto

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

Vis MySQL brugerkonto privilegier

Sådan finder du de (n) privilegier (er), der er tildelt en bestemt MySQL-brugerkontotype:

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)

Konklusion

Denne tutorial dækker kun det grundlæggende, men det skal være en god start for alle, der ønsker at lære, hvordan man administrerer MySQL-databaser og brugere fra kommandolinjen. Du kan også kontrollere selvstudiet om, hvordan du nulstiller en MySQL-root-adgangskode, hvis du har glemt det.

Det er alt! Hvis du har spørgsmål eller feedback, er du velkommen til at give en kommentar.

mysql mariadb