Installera MySQL och din första databas
Vi går steg för steg igenom hur du installerar MySQL-servern på tre operativsystem, skapar säkra användare och behörigheter samt den första databasen och tabellen.

För MySQL-installationen laddar du på Windows och macOS ner installationsprogrammet för LTS-versionen från dev.mysql.com och anger ett root-lösenord; på Ubuntu räcker sudo apt install mysql-server. Efter installationen ansluter du med mysql -u root -p, skapar den första databasen med CREATE DATABASE och lägger upp en separat användare för din applikation med behörighet enbart till den databasen.
Vad är MySQL och varför välja det?
MySQL är ett av världens vanligaste relationsdatabassystem, där data lagras i tabeller och frågas med SQL. Många program, som webbplatser, e-handelssystem samt boknings- och lagerapplikationer, använder MySQL eller det kompatibla MariaDB i bakgrunden.
MySQL har två versionsfamiljer: LTS-versioner med långt stöd och innovationsversioner som kommer med nya funktioner tidigare. Välj LTS för affärsprojekt och för att lära dig; kontrollera vilken version som är aktuell LTS på nedladdningssidan dev.mysql.com.
I den här guiden installerar vi MySQL Community Server, alltså den kostnadsfria communityversionen. Vill du bara snabbt prova med PHP fungerar också ett färdigt paket med MariaDB; det har vi gått igenom i guiden installera XAMPP.
Installera MySQL på Windows
Välj MSI-installationsprogrammet för Windows på nedladdningssidan. I aktuella versioner öppnas MySQL Configurator efter installationen och låter dig göra serverinställningarna steg för steg; i äldre versioner gjordes samma sak med MySQL Installer. Om nedladdningssidan ber dig logga in med ett Oracle-konto kan du ladda ner direkt med länken “No thanks, just start my download”.
- Välj profilen Development Computer för en utvecklingsdator som installationstyp; den profilen håller minnesanvändningen låg.
- Behåll standardporten 3306 i anslutningsinställningarna; om en annan databas på datorn använder den porten anger du ett värde som 3307.
- Behåll det rekommenderade alternativet med stark kryptering som autentiseringsmetod.
- Ange root-lösenordet och anteckna det på ett säkert ställe; det är det mest behöriga kontot på servern.
- Registrera MySQL som en Windows-tjänst och välj att den startar när datorn startar.
- Tillämpa inställningarna i sista steget; när alla steg fått grön bock är servern klar.
Installation på macOS och Linux
På macOS installerar det officiella DMG-paketet en panel i systeminställningarna; där startar och stoppar du servern. Använder du Homebrew sköts installation och tjänstehantering med två kommandon.
På Ubuntu och Debian finns MySQL-servern i distributionens arkiv. På Ubuntu autentiseras root-användaren som standard med metoden auth_socket efter installationen; du ansluter alltså med kommandot sudo mysql i stället för med lösenord. På båda systemen rekommenderar vi att du kör skriptet mysql_secure_installation efter installationen: det tar bort anonyma användare och testdatabasen och stänger av fjärranslutning för root.
brew install mysql
brew services start mysql
mysql_secure_installationsudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
# Säkerhetsinställningar
sudo mysql_secure_installation
# Anslut inte som root (auth_socket)
sudo mysqlVerifiera installationen
Kontrollera att servern körs och att du kan ansluta med kommandona nedan. Kommandot mysql -u root -p frågar efter ditt lösenord; ser du prompten mysql> med rätt lösenord är installationen klar. Glöm inte semikolon i slutet av SQL-kommandon i servern.
mysql --version
mysql -u root -pSELECT VERSION();
SHOW DATABASES;
EXIT;Skapa en MySQL-databas
När du skapar en ny databas förhindrar ett rätt val av teckenuppsättning från början problem med specialtecken och emojis längre fram. I aktuella MySQL-versioner är standardteckenuppsättningen redan utf8mb4; det är ändå en bra vana att ange den uttryckligen i kommandot. Vill du ha turkiska sorteringsregler kan du använda jämförelsen utf8mb4_tr_0900_ai_ci.
Nu skapar vi den första tabellen. Exemplet är en enkel produkttabell: för priset används typen DECIMAL i stället för flyttal, eftersom avrundningsfel i penningbelopp inte är acceptabla.
- PRIMARY KEY identifierar varje rad unikt; AUTO_INCREMENT ger numret automatiskt.
- Lagringsmotorn InnoDB stöder transaktioner och främmande nycklar och är standard i aktuella versioner.
- Att lägga till index på kolumner du ofta söker i gör frågorna snabbare; men varje onödigt index gör skrivningar långsammare.
CREATE DATABASE magaza
CHARACTER SET utf8mb4
COLLATE utf8mb4_tr_0900_ai_ci;
USE magaza;
CREATE TABLE urunler (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(150) NOT NULL,
fiyat DECIMAL(10,2) NOT NULL,
stok INT NOT NULL DEFAULT 0,
olusturma DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
INSERT INTO urunler (ad, fiyat, stok) VALUES ('Exempelprodukt', 10.00, 25);
SELECT * FROM urunler;Skapa MySQL-användare och behörigheter
Anslut aldrig din applikation till databasen med root-användaren. Skapa för varje applikation en separat användare som bara når sin egen databas och bara kan göra de operationer den behöver. Då blir skadan begränsad till den databasen även om en säkerhetslucka skulle uppstå.
Delen 'localhost' bredvid användarnamnet avgör varifrån anslutningen accepteras. Ligger applikationen och databasen på samma server räcker localhost; behövs fjärranslutning, tillåt bara en viss IP-adress och undvik att öppna för alla med '%'.
CREATE USER 'magaza_app'@'localhost' IDENTIFIED BY 'Guclu-Bir-Sifre-2!';
GRANT SELECT, INSERT, UPDATE, DELETE ON magaza.* TO 'magaza_app'@'localhost';
SHOW GRANTS FOR 'magaza_app'@'localhost';
-- Byta lösenord och ta bort användare
ALTER USER 'magaza_app'@'localhost' IDENTIFIED BY 'Yeni-Sifre-3!';
DROP USER 'magaza_app'@'localhost';Visuell hantering med MySQL Workbench
Föredrar du ett grafiskt gränssnitt framför kommandoraden är MySQL Workbench MySQL:s officiella skrivbordsverktyg. På anslutningsskärmen klickar du på plusikonen och anger serveradress (127.0.0.1), port (3306) och användarnamn; knappen Test Connection verifierar inställningarna.
I Workbench kan du designa tabeller visuellt, skriva frågor och se resultaten i tabellform samt exportera och importera data från menyn Server. På frågeskärmen kör Ctrl+Enter kommandot där markören står.
Säkerhetskopiering och återställning
Exportskärmen i Workbench använder verktyget mysqldump i bakgrunden. Du kan göra samma sak från terminalen; för regelbundna och automatiska säkerhetskopior kan kommandot läggas till som en schemalagd uppgift. Du har inte tagit någon backup förrän du då och då testat att den går att återställa.
# Yedek al
mysqldump -u root -p magaza > magaza.sql
# Återställ
mysql -u root -p magaza < magaza.sqlVanliga anslutningsfel och lösningar
De flesta problem med MySQL gäller anslutning, autentisering och lösenordspolicy. Felnumret är det snabbaste sättet att förstå orsaken.
- ERROR 1045 Access denied: Användarnamn, lösenord eller anslutningsadress (localhost / 127.0.0.1) är fel. Kontrollera vilken adress användaren är definierad för med SELECT user, host FROM mysql.user;.
- ERROR 2002 / 2003 Can't connect: Servern körs inte. Starta MySQL-tjänsten från Tjänster i Windows, och använd sudo systemctl start mysql på Linux.
- ERROR 1819, lösenordspolicy: Komponenten validate_password avvisar ett svagt lösenord; välj ett längre lösenord med versaler, siffror och specialtecken.
- Port 3306 används: En annan databas, som XAMPP, körs på datorn; stoppa den ena eller ändra en av portarna.
- Fel i autentisering för gammal klient: Aktuell MySQL använder som standard metoden caching_sha2_password; uppdatera ditt klientbibliotek.
Koppla MySQL till applikationen
I PHP-projekt är det rekommenderade sättet att ansluta till MySQL att använda PDO med förberedda frågor (prepared statements); metoden ger ett grundskydd mot SQL-injektion. Spara anslutningsuppgifterna i en miljöfil som inte checkas in i Git i stället för att skriva dem i koden. För att hantera PHP-beroenden kan du titta på vår guide installera Composer.
Funderar du på en annan databas kan du jämföra de två systemen med vår artikel installera PostgreSQL. För fler artiklar, titta på sidan för taggen databas.
Databasdesignen påverkar direkt hastigheten på en webbplats eller en e-handelsplattform: felaktiga index eller onödiga frågor gör att sidan öppnas långsamt. Sådana flaskhalsar mäter och åtgärdar vi i vårt arbete med hastighet och prestanda; i våra projekt med företagswebbplatser bygger vi också upp databasen med det perspektivet från början.
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=magaza;charset=utf8mb4',
'magaza_app',
getenv('DB_SIFRE'),
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
$sorgu = $pdo->prepare('SELECT ad, stok FROM urunler WHERE id = ?');
$sorgu->execute([1]);
print_r($sorgu->fetch());Vanliga frågor
01Vad är skillnaden mellan MySQL och MariaDB?
MariaDB är en databas som härletts från MySQL och i stort sett är kompatibel. Grundläggande SQL-kommandon och de flesta applikationer fungerar likadant i båda; men i nya versioner har vissa funktioner och standardinställningar börjat skilja sig, så använd lokalt samma som körs på produktionsservern.
02Är MySQL gratis?
MySQL Community Server är gratis och öppen källkod. Oracle har också betalda företagsversioner med extra verktyg och support; för de flesta webbprojekt räcker communityversionen.
03Jag har glömt root-lösenordet, vad kan jag göra?
Följ stegen för återställning av lösenord i den officiella dokumentationen: servern startas tillfälligt utan behörighetskontroll och ett nytt lösenord anges med ALTER USER. Om root på Ubuntu använder auth_socket kan du ansluta utan lösenord med sudo mysql och göra ändringen direkt.
Att installera MySQL med LTS-versionen och köra säkerhetsskriptet, skapa en separat användare med begränsade behörigheter för applikationen och ta regelbundna säkerhetskopior är grunden för en robust databas. Vill du ha ett skräddarsytt system för ditt företag, från databasdesign till gränssnitt, titta på Aurora Yazılıms skräddarsydda mjukvarulösningar eller kontakta oss.


