MySQL er en af de mest populære open source-databaser. Den er kendt for sin ydeevne, på­li­de­lig­hed og ska­ler­bar­hed og bruges i mange for­skel­li­ge områder, fra små webhosting­sy­ste­mer til store virk­som­he­der. I denne artikel forklarer vi trin for trin, hvordan du in­stal­le­rer MySQL på Ubuntu 20.04, så du kan oprette et på­li­de­ligt da­ta­ba­sesty­rings­sy­stem.

Hvad er kravene til in­stal­la­tion af MySQL på Ubuntu 20.04?

Der er relativt få sy­stem­krav til in­stal­la­tion af MySQL på Ubuntu 20.04, som alle bør være opfyldt på de fleste moderne desktop- og ser­ver­sy­ste­mer. Det er vigtigt at bemærke, at kravene kan variere afhængigt af da­ta­ba­sens formål og omfang. Hvis du f.eks. vil køre et res­sour­ce­kræ­ven­de program, der bruger store databaser eller komplekse fo­re­spørgs­ler, vil der være behov for mere RAM og pro­ces­sor­kraft for at sikre god ydeevne. Du bør også have til­stræk­ke­lig plads på din harddisk til at give plads til fremtidig vækst og til­fø­jel­se af flere databaser.

Du bør kon­trol­le­re din net­værks­kon­fi­gu­ra­tion og fi­rewal­lindstil­lin­ger for at sikre pro­blem­fri kom­mu­ni­ka­tion mellem MySQL-serveren og kli­en­ter­ne. MySQL-serveren bør have en statisk IP-adresse for at undgå problemer med for­bin­del­sen.

Her er mini­mum­s­kra­ve­ne for in­stal­la­tion af MySQL:

  • Processor (CPU): x86-64-ar­ki­tek­tur, min. 1 GHz (dual-core)
  • RAM: min. 1 GB
  • Ope­ra­tiv­sy­stem: Ubuntu 20.04, en bru­ger­kon­to med sudo- og root-ret­tig­he­der
  • Firewall: MySQL-port 3306 åben
  • Hard­disk­plads: min. 500 MB
  • In­ter­net­for­bin­del­se: Kræves for at downloade pakker og oprette for­bin­del­se til MySQL-serveren

Trinvis vej­led­ning til in­stal­la­tion af MySQL på Ubuntu 20.04

MySQL kan in­stal­le­res på Ubuntu 20.04 ved hjælp af pak­ke­hånd­te­rings­sy­ste­met APT (Advanced Package Tool). Efter in­stal­la­tio­nen skal du opsætte og kon­fi­gu­re­re det, hvilket kræver root-ad­gangs­ko­den og adgang til eksterne klienter. Nedenfor viser vi dig trin for trin, hvordan du in­stal­le­rer MySQL på Ubuntu 20.04.

Trin 1: Opdater pak­ke­in­deks

Først er det en god idé at sikre, at din liste over pakker er opdateret. Du kan bruge følgende kommando til dette:

$ sudo apt update
bash

Trin 2: Installer MySQL-serveren

Dernæst in­stal­le­rer du MySQL-ser­ver­pak­ken med APT:

$ sudo apt install mysql-server
bash

For at kon­trol­le­re, at serveren kører, kan du starte den manuelt med kom­man­do­en systemctl.

$ sudo systemctl start mysql.service
bash

Trin 3: Kon­fi­gu­rer MySQL

MySQL opfylder ikke de an­be­fa­le­de sik­ker­heds­stan­dar­der umid­del­bart efter in­stal­la­tio­nen. For at løse dette problem skal du bruge det script, der tilbydes af MySQL, til at ændre indstil­lin­ger­ne, så serveren beskyttes bedre. Dette vil indstille root-ad­gangs­ko­den, fjerne anonyme brugere og begrænse fjer­n­ad­gang.

Du skal tage visse for­holds­reg­ler for at sikre, at du udfører scriptet korrekt. Appen vil ændre ad­gangs­ko­den til root-kontoen, som er de­ak­ti­ve­ret som standard på Ubuntu. For at undgå en fejl skal du justere god­ken­del­ses­me­to­den for root-brugere.

For at gøre dette skal du starte MySQL-kom­mandopromp­ten:

$ sudo mysql
bash

Brug kom­man­do­en ALTER USER til at indstille en ad­gangs­ko­de for root:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Luk MySQL-kom­mandopromp­ten:

mysql> exit
bash

Kør sik­ker­heds­skrip­tet:

$ sudo mysql_secure_installation
bash

For at godkende root-brugeren skal du indtaste følgende:

$ mysql -u root -p
bash

Når scriptet er færdigt, kan du ændre stan­dard­god­ken­del­ses­me­to­den igen:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bash

Dette vil gøre det muligt for dig at oprette for­bin­del­se med sudo mysql -kom­man­do­en igen.

Trin 4: Opret MySQL-brugere

Når du in­stal­le­rer MySQL, oprettes der en root-bruger, der har alle ret­tig­he­der til MySQL-serveren og fuld kontrol over databaser, tabeller og brugere. For at øge sik­ker­he­den bør du oprette en bruger med be­græn­se­de ret­tig­he­der.

For at gøre dette skal du åbne MySQL-kom­mandopromp­ten:

$ sudo mysql
bash

Hvis du har angivet en ad­gangs­ko­de som god­ken­del­ses­me­to­de, skal du bruge følgende:

$ mysql -u root -p
bash

Opret nu en ny bruger til MySQL:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Indtast dit bru­ger­navn i stedet for ‘username’ og navnet på din host i stedet for ‘host’. Hvis du kører Ubuntu lokalt, skal du skrive localhost. Udtrykket ‘WITH aut­hen­ti­ca­tion_plugin’ er valgfrit. Pluginet ‘auth_socket’ har stærke sik­ker­heds­indstil­lin­ger og kræver ikke en ad­gangs­ko­de for at logge ind.

Medmindre andet er angivet, bruger MySQL plugin’et ‘caching_sha2_password’ til au­ten­ti­fi­ce­ring. Nogle versioner af PHP er dog ikke kom­pa­tib­le med dette plugin. Du kan i stedet bruge det gen­nem­prø­ve­de plugin ‘mysql_native_password’:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Eller brug funk­tio­nen ‘alter’ til en ek­si­ste­ren­de bruger:

mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Trin 5: Tildel pri­vil­e­gi­er

Nu er det tid til at indstille, hvilke ret­tig­he­der den nye bruger skal have. Syntaksen for dette er:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

Pri­vil­e­gi­er adskilles med et komma. For at give globale pri­vil­e­gi­er skal du erstatte ‘database.table’ med en stjerne ‘*’.

I det følgende eksempel giver vi en bruger til­la­del­se til at oprette (CREATE), ændre (ALTER) og slette (DROP) databaser samt indsætte (INSERT), vælge (SELECT), opdatere (UPDATE) og slette (DELETE) data i en tabel.

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bash

‘MED TIL­DE­LINGS­OP­TION’ giver brugeren til­la­del­se til at give de pri­vil­e­gi­er, de har, til andre brugere.

Tøm nu cachen med ‘FLUSH PRI­VIL­E­GES’:

mysql> FLUSH PRIVILEGES;
bash

Derefter kan du lukke MySQL-kom­mandopromp­ten:

mysql> exit
bash

Nu kan du logge ind med det nye bru­ger­navn:

$ mysql -u username -p
bash

Trin 6: Test MySQL

Kon­trol­ler, om MySQL kører korrekt, f.eks. med sy­stemad­mi­ni­stra­to­ren Systemd:

$ systemctl status mysql.service
bash

Al­ter­na­tivt kan du oprette for­bin­del­se til MySQL-databasen. Følgende kommando logger dig ind på MySQL og viser ser­ver­ver­sio­nen:

$ sudo mysqladmin -p -u username version
bash
Gå til ho­ved­me­nu­en