MySQL er et af nutidens mest udbredte relationelle databaseadministrationssystemer (RDBMS). Det er en robust databaseplatform, der gør det muligt at oprette og administrere skalerbare databaser, primært ved hjælp af et struktureret forespørgselssprog (SQL).

MySQL-serveren er det miljø, hvor databaserne befinder sig – og hvor der er adgang til dem. Som serveradministrator vil du ofte have brug for at hente detaljer om dette miljø – liste over de databaser, der findes på serveren, vise tabeller fra en bestemt database, se brugerroller og -rettigheder, få adgang til begrænsninger osv.

Denne artikel vil forklare hvordan du kan liste MySQL-databaser via kommandoprompten.

Forudsætninger for at liste MySQL-databaser

Du skal have MySQL-serveren kørende på din lokale maskine for at komme i gang. Hvis du ikke har MySQL, er der et par måder at installere det på:

  • Installer WAMPServer, XAMPP, MAMP eller en anden softwaredistributions stack, der indeholder MySQL.
  • Download og kør MySQL-installationsprogrammet direkte fra deres officielle websted, og gå gennem opsætningsprocessen for at konfigurere og installere MySQL-serveren og andre værktøjer.

For at kunne køre MySQL-kommandoer på kommandolinjen skal du tilføje stien til MySQL’s eksekverbare fil til dit systemmiljø. Hvis du har installeret MySQL ved hjælp af mulighed to, er dette trin unødvendigt, og du er velkommen til at springe det næste afsnit over.

Tilføj MySQL-stien til dit systems variabelmiljø

Dette afsnit guider dig i at tilføje stien til MySQL’s eksekverbare fil til dit systems variable miljø, hvis du kører XAMPP eller WAMP på en Windows-computer.

Først skal du starte din Windows-filudforskeren og navigere til Denne pc. Klik på det drev, hvor du har installeret WAMP- eller XAMPP-pakken (C:).

Hvis du kører XAMPP, skal du navigere til xampp > mysql > bin og kopiere den fulde sti til bin-mappen. For WAMP skal du navigere gennem {din-wamp-version} > bin > mysql > {din-mysql-version} > bin til den fulde sti.

Den fulde sti til bin-mappen.
Den fulde sti til bin-mappen.

Klik på menuen Start, og søg efter “path” Klik på Rediger systemmiljøvariablen.

Klik derefter på Miljøvariabler under Start og genopretning, vælg variablen PATH, og klik på Rediger.

Klik derefter på Ny, og indsæt den fulde sti til din MySQL-køreprogram (som du kopierede tidligere).

Redigering af miljøvariabler.
Redigering af miljøvariablen.

Gem derefter ændringerne ved at klikke på OK.

Nu hvor stien er blevet tilføjet, kan du udføre MySQL-kommandoer i terminalen.

Login til MySQL

For at kunne liste MySQL-databaser skal brugeren have tilladelse til at få adgang til alle databaser, eller du skal indstille et globalt SHOW DATABASES -privilegium, der giver adgang til alle brugere.

Sørg for, at din MySQL-server kører, før du logger ind via kommandoprompten:

mysql -u  -p

BEMÆRK: erstat  med dit brugernavn. Standardbrugernavnet for MySQL er root, og password er tomt (der er intet password som standard).

Log ind på MySQL via terminalen.
Logger ind på MySQL.

Vis databaser inde i MySQL-serveren

Nu hvor du er logget ind, kan du liste de MySQL-databaser, der findes i serveren, ved at udføre kommandoen SHOW DATABASES:

SHOW DATABASES;

Til gengæld får du alle de databaser, der er til stede i lageret:

En liste over de databaser, der findes i lageret.
En liste over de databaser, der findes i lageret.

Ud af de seks databaser, der returneres, er information_schema og performance_schema standarddatabaser, som automatisk genereres, når du installerer MySQL.

Databasen information_schema er en database, der ikke kan ændres, og som gemmer alle oplysninger vedrørende databaser og andre objekter (visninger, brugerrettigheder, tabeller, begrænsninger osv.), der er gemt på MySQL-serveren.

Filtrering af resultaterne af databasens output

Tidligere returnerede du alle databaserne på MySQL-serveren med SHOW DATABASES, men du er ofte nødt til at filtrere databasens output, især når der er mange databaser på serveren.

Med klausulen LIKE filtreres resultatet af SHOW DATABASE ud fra et angivet mønster. Her er den generelle syntaks:

SHOW DATABASES LIKE '';

Det skal være en streng, der repræsenterer det mønster, du ønsker at matche. Strengen skal slutte med procentsymbolet, %, som angiver et eller flere tegn.

Hvis du f.eks. kun vil vise de databaser, hvis navne begynder med bogstavet w, kan du gøre det ved at køre følgende:

SHOW DATABASES LIKE 'w%';

Her er det filtrerede resultat:

Det filtrerede databasesvar ved brug af 'w%'.
Det filtrerede databasesvar ved brug af ‘w%’.

Brug af informationsskema til at forespørge på tabelmetadata

Tidligere så du, hvordan databasen information_schema gemmer alle oplysninger relateret til databaser, tabeller og andre objekter i MySQL-servermiljøet.

Databasen information_schema gør brug af skema-tabellen til at gemme oplysninger om alle databaser. Med henblik på databasefiltrering kan du udføre en kompleks søgning for at forespørge i schema-tabellen efter bestemte databaser.

Hvis du f.eks. vil have databaser, hvis navne starter med enten “samp” eller “word”, kan du kombinere flere andre klausuler for at lave en kompleks forespørgsel:

SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

Her er resultatet:

Brug af MySQL's
Resultaterne af den komplekse forespørgsel.

Derudover har du tabellen tables fra databasen information_schema, som indeholder oplysninger om alle tabeller. På samme måde kan du udføre en forespørgsel for kun at hente de tabeller, der passer til et bestemt mønster.

Følgende forespørgsel returnerer f.eks. kun schemaoplysningerne for WordPress-tabellerne – kun de tabeller, hvis navne begynder med “wp_”:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Her er resultatet:

Visning af wp_tables MySQL-databasetabellen.
Resultaterne af skemaoplysningerne for kun WordPress-tabellerne.

Andre tabeller fundet i information_schema omfatter columns, constraints, table_constraints, check_constraints, og referential_constraints.

Fælles problemer og bedste praksis

En af de mest almindelige årsager til fejl ved udførelse af SQL er den manglende brug af et semikolon i slutningen af udsagn.

En anden er at bruge en ugyldig SQL-syntaks eller et forkert stavet tabel-/kolonnenavn. For at undgå dette skal du krydstjekke tabel- eller kolonnenavnet for at sikre, at det er stavet korrekt. Sørg også for at krydstjekke din syntaks.

Her er nogle andre bedste praksis, som du skal huske på.

Brug store bogstaver til SQL-ord

Når du skriver SQL-kode, skal du altid bruge store bogstaver til SQL-nøgleord og små bogstaver til tabel- og kolonnenavne. Dette gør din kode mere læsbar og mindre udsat for fejl.

Så i stedet for dette:

select * from information_schema.tables where table_name like 'wp_%';

Gør dette:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Undgå at bruge SELECT *

Undgå at bruge SELECT * i dine SQL-forespørgsler. Din forespørgsel er uklar, fordi du ikke altid kan vide, hvad den vil returnere. Angiv i stedet de kolonner, du ønsker at vælge fra tabellen.

Så i stedet for dette:

SELECT * EXCEPT(phone) FROM users.profile

Gør dette:

SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

Indryk din kode

Endelig er der endnu et tip til at gøre det lettere at finde fejl: Indryk din kode. Det gør den mere læsbar!

Databasemanagere

Alternativt kan du vælge at administrere dine databaser uden at skrive SQL ved hjælp af en database manager. Dette giver brugerne adgang til databasestyringsfunktioner uden at skulle skrive SQL-forespørgsler. Denne software opretter forbindelse til en MySQL-server og giver en brugergrænseflade til at eksponere databasefunktionerne. Når den er tilsluttet, vil brugergrænsefladen vise alle databaser på serveren. Udseendet varierer på tværs af administrationsværktøjer, men processen er ens.

DevKinsta's database manager.
DevKinsta’s database manager.

Der er flere værktøjer at vælge imellem, herunder phpMyAdmin og Adminer, som begge er tilgængelige via DevKinsta. Standardhåndteringsværktøjet til DevKinsta er Adminer, da det er let, nemt og hurtigt, men phpMyAdmin kan nemt tilgås.

Oversigt

Som serveradministrator skal du være i stand til effektivt og præcist at hente detaljer om databaserne på din MySQL-server. Evnerne til at se, hvilke databaser der er på serveren, se specifikke tabeller og oplysningerne fra dem og få adgang til oplysninger om brugerroller og privilegier er alle afgørende opgaver. Heldigvis kan du gøre alt dette til en leg ved hjælp af SQL fra din kommandolinje.

Når din databaseadministration skal strække sig ud over forespørgsler til tabeller, kan Kinsta hjælpe dig. Få mere at vide om vores muligheder for skalerbar databasehosting i dag!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.