MySQL är en av de mest populära open source-da­ta­ba­ser­na. Den är känd för sin prestanda, till­för­lit­lig­het och skal­bar­het och används inom många olika områden, från små webb­ho­tell­sy­stem till stora företag. I den här artikeln förklarar vi steg för steg hur du in­stal­le­rar MySQL på Ubuntu 20.04, så att du kan kon­fi­gu­re­ra ett till­för­lit­ligt da­ta­bashan­te­rings­sy­stem.

Vilka är kraven för att in­stal­le­ra MySQL på Ubuntu 20.04?

Det finns relativt få system­krav för att in­stal­le­ra MySQL på Ubuntu 20.04, som alla bör uppfyllas på de flesta moderna sta­tio­nä­ra datorer och ser­ver­sy­stem. Det är viktigt att notera att kraven kan variera beroende på da­ta­ba­sens avsedda syfte och om­fatt­ning. Om du till exempel vill köra en intensiv ap­pli­ka­tion som använder stora databaser eller komplexa frågor kommer det RAM-minne och den pro­ces­sor­kraft som krävs för att sä­ker­stäl­la god prestanda att vara högre. Du bör också ha till­räck­ligt med utrymme på hård­dis­ken för att möj­lig­gö­ra framtida tillväxt och tillägg av fler databaser.

Du bör kon­trol­le­ra din nät­verks­kon­fi­gu­ra­tion och brand­vägg­s­in­ställ­ning­ar för att sä­ker­stäl­la smidig kom­mu­ni­ka­tion mellan MySQL-servern och kli­en­ter­na. MySQL-servern bör ha en statisk IP-adress för att undvika problem med an­slut­ning­en.

Här är mi­ni­mikra­ven för in­stal­la­tion av MySQL:

  • Processor (CPU): x86-64-ar­ki­tek­tur, min. 1 GHz (dual-core)
  • RAM: minst 1 GB
  • Ope­ra­tiv­sy­stem: Ubuntu 20.04, ett an­vän­dar­kon­to med sudo- och root-be­hö­rig­het
  • Brandvägg: MySQL-port 3306 öppen
  • Hård­dis­kut­rym­me: minst 500 MB
  • In­ter­ne­tan­slut­ning: Krävs för att ladda ner paket och ansluta till MySQL-servern

Steg-för-steg-guide för hur man in­stal­le­rar MySQL på Ubuntu 20.04

MySQL kan in­stal­le­ras på Ubuntu 20.04 med hjälp av pa­ket­han­te­rings­sy­ste­met APT (Advanced Package Tool). Efter in­stal­la­tio­nen måste du ställa in och kon­fi­gu­re­ra det, för vilket du behöver root-lö­senor­det och åtkomst till externa klienter. Nedan visar vi dig steg för steg hur du in­stal­le­rar MySQL på Ubuntu 20.04.

Steg 1: Uppdatera pa­ke­tin­dex

Först är det en bra idé att se till att din lista över paket är upp­da­te­rad. Du kan använda följande kommando för detta:

$ sudo apt update
bash

Steg 2: In­stal­le­ra MySQL-servern

In­stal­le­ra sedan MySQL-ser­ver­pa­ke­tet med APT:

$ sudo apt install mysql-server
bash

För att kon­trol­le­ra att servern körs kan du starta den manuellt med kommandot systemctl.

$ sudo systemctl start mysql.service
bash

Steg 3: Kon­fi­gu­re­ra MySQL

MySQL uppfyller inte de re­kom­men­de­ra­de sä­ker­hets­stan­dar­der­na direkt efter in­stal­la­tio­nen. För att åtgärda detta använder du det skript som MySQL till­han­da­hål­ler för att ändra in­ställ­ning­ar­na så att servern skyddas bättre. Det innebär att root-lö­senor­det ställs in, anonyma användare tas bort och fjär­råt­komst begränsas.

Du måste vidta vissa för­sik­tig­hets­åt­gär­der för att sä­ker­stäl­la att du kör skriptet korrekt. Appen kommer att vilja ändra lö­senor­det för root-kontot, som är in­ak­ti­ve­rat som standard i Ubuntu. För att undvika fel måste du justera au­ten­ti­se­rings­me­to­den för root-användare.

För att göra detta, starta MySQL-kom­man­do­tol­ken:

$ sudo mysql
bash

Använd kommandot ALTER USER för att ställa in ett lösenord för root:

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

Stäng MySQL-kom­man­do­tol­ken:

mysql> exit
bash

Kör sä­ker­hets­skrip­tet:

$ sudo mysql_secure_installation
bash

För att au­ten­ti­se­ra root-an­vän­da­ren, ange följande:

$ mysql -u root -p
bash

När skriptet är klart kan du ändra stan­dar­dau­ten­ti­se­rings­me­to­den igen:

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

Detta gör att du kan ansluta med kommandot sudo mysql igen.

Steg 4: Kon­fi­gu­re­ra MySQL-användare

När du in­stal­le­rar MySQL skapas en root-användare som har alla be­hö­rig­he­ter för MySQL-servern och full­stän­dig kontroll över databaser, tabeller och användare. För att öka sä­ker­he­ten bör du skapa en användare med be­grän­sa­de be­hö­rig­he­ter.

För att göra detta öppnar du MySQL-kom­man­do­tol­ken:

$ sudo mysql
bash

Om du har ställt in ett lösenord som au­ten­ti­se­rings­me­tod, använd följande:

$ mysql -u root -p
bash

Skapa nu en ny användare för MySQL:

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

Ange ditt an­vän­dar­namn i stället för “username” och namnet på din värd i stället för “host”. Om du kör Ubuntu lokalt skriver du localhost. Uttrycket “WITH authen­ti­ca­tion_plugin” är valfritt. Plugin-pro­gram­met “auth_socket” har starka sä­ker­hets­in­ställ­ning­ar och kräver inget lösenord för in­logg­ning.

Om inget annat anges använder MySQL plugin-pro­gram­met “caching_sha2_password” för au­ten­ti­se­ring. Vissa versioner av PHP är dock inte kom­pa­tib­la med detta. Du kan istället använda det beprövade plugin-pro­gram­met “mysql_native_password”:

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

Eller använd funk­tio­nen “alter” för en befintlig användare:

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

Steg 5: Tilldela be­hö­rig­he­ter

Nu är det dags att ställa in vilka be­hö­rig­he­ter den nya an­vän­da­ren ska ha. Syntaxen för detta är:

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

Pri­vi­le­gi­er separeras med kom­ma­tec­ken. För att ge globala pri­vi­le­gi­er ersätter du “database.table” med en asterisk “*”.

I följande exempel ger vi en användare be­hö­rig­het att skapa (CREATE), ändra (ALTER) och ta bort (DROP) databaser samt att infoga (INSERT), välja (SELECT), uppdatera (UPDATE) och ta bort (DELETE) data i en tabell.

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

“MED BE­VIL­JAN­DE­OP­TION” ger an­vän­da­ren tillstånd att ge sina pri­vi­le­gi­er till andra användare.

Töm nu cache­min­net med “FLUSH PRI­VI­LE­GES”:

mysql> FLUSH PRIVILEGES;
bash

Därefter kan du stänga MySQL-kom­man­do­tol­ken:

mysql> exit
bash

Nu kan du logga in med det nya an­vän­dar­nam­net:

$ mysql -u username -p
bash

Steg 6: Testa MySQL

Kon­trol­le­ra om MySQL fungerar korrekt med till exempel system­han­te­ra­ren Systemd:

$ systemctl status mysql.service
bash

Al­ter­na­tivt kan du ansluta till MySQL-databasen. Följande kommando loggar in dig på MySQL och visar ser­ver­ver­sio­nen:

$ sudo mysqladmin -p -u username version
bash
Gå till huvudmeny