februari 3, 2022

supportnätverk

installera MySQL-servern på Ubuntu-operativsystemet

Senast uppdaterad den: 2019-12-20

författare: Jered Heeschen

MySQL är en relationsdatabas med öppen källkod som är gratis och allmänt använd. Det är ett bra val om du vet att du behöver en databas men inte vet mycket om alla tillgängliga alternativ.

den här artikeln beskriver en grundläggande installation av en MySQL-databasserver på Ubuntu-operativsystemet. Du kan behöva installera andra paket för att låta applikationer använda MySQL, som tillägg för PHP. Kontrollera din ansökandokumentation för detaljer.

installera MySQL

installera MySQL-servern med hjälp av Ubuntu – operativsystemets pakethanterare:

sudo apt-get updatesudo apt-get install mysql-server

installationsprogrammet installerar MySQL och alla beroenden.

om verktyget säker installation inte startar automatiskt efter installationen är klar anger du följande kommando:

sudo mysql_secure_installation utility

det här verktyget uppmanar dig att definiera mysql root-lösenordoch andra säkerhetsrelaterade alternativ, inklusive att ta bort fjärråtkomsttill rotanvändaren och ställa in root-lösenordet.

Tillåt fjärråtkomst

om du har iptables aktiverat och vill ansluta till MySQL-databasen frånen annan maskin måste du öppna en port i serverns brandvägg (standardporten är 3306). Du behöver inte göra detta om programmet som använder MySQLis körs på samma server.

kör följande kommando för att tillåta fjärråtkomst till mysql-servern:

sudo ufw enablesudo ufw allow mysql

starta MySQL-tjänsten

när installationen är klar kan du starta databastjänsten genomkör följande kommando. Om tjänsten redan är igång, ett meddelandeinformerar dig om att tjänsten redan körs:

sudo systemctl start mysql

starta vid omstart

för att säkerställa att databasservern startar efter en omstart, kör följande kommando:

sudo systemctl enable mysql

konfigurera gränssnitt

MySQL, som standard är inte längre bunden till ( lyssna på ) några fjärråtkomliga gränssnitt.Redigera direktivet ”bind-adress” i /etc/mysql/mysql.conf.d / mysqld.cnf:

bind-address= 127.0.0.1 ( The default. )bind-address= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )bind-address= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )bind-address= 0.0.0.0 ( All ip addresses. )

starta om mysql-tjänsten.

sudo systemctl restart mysql

starta mysql-skalet

det finns mer än ett sätt att arbeta med en MySQL-server, men den här artikelnfokuserar på det mest grundläggande och kompatibla tillvägagångssättet, mysql skalet.

  1. vid kommandotolken kör du följande kommando för att starta skalet mysqloch ange det som root-användare:

    /usr/bin/mysql -u root -p
  2. när du blir ombedd att ange ett lösenord anger du det du ställt in påinstallationstid, eller om du inte har ställt in ett, tryck på Enter för att skicka nopassword.

    följande mysql skalprompt ska visas:

    mysql>

ange root-lösenordet

om du loggade in genom att ange ett tomt lösenord, eller om du vill ändra rootpassword som du anger, kan du skapa eller ändra lösenordet.

  1. för versioner tidigare än MySQL 5.7, ange följande kommando i skalet mysql, ersätt password medditt nya lösenord:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';

    för version MySQL 5.7 och senare anger du följande kommando i skalet mysql och ersätter password medditt nya lösenord:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
  2. för att få ändringen att träda i kraft, ladda om den lagrade användarinformationen med följande kommando:

    FLUSH PRIVILEGES;

    Obs: vi använder all-caps för SQL-kommandon. Om du skriver demkommandon i små bokstäver fungerar de. Enligt konventionen skrivs kommandona i all-caps för att få dem att sticka ut från fältnamn och andra data som manipuleras.

om du behöver återställa rotlösenordet senare, se Återställ ett MySQL-rotlösenord.

Visa användare

MySQL lagrar användarinformationen i sin egen databas. Namnet på databasenär mysql. Inuti den databasen finns användarinformationen i en tabell, adataset, som heter användare. Om du vill se vilka användare som är inställda i mysqluser-tabellen, kör följande kommando:

SELECT User, Host, authentication_string FROM mysql.user;

följande lista beskriver delarna av det kommandot:

  • välj berättar för MySQL att du ber om data.
  • användare, värd, authentication_string berättar för MySQL vilka fält du vill ha dettitta in. Fält är kategorier för data i en tabell. I det här fallet letar du efter användarnamnet, värden som är associerad med användarnamnet ochDen krypterade lösenordsinmatningen.
  • från mysql.användare ” berättar för MySQL att hämta data från mysqldatabase och användartabellen.
  • ett semikolon (;) avslutar kommandot.

Obs: alla SQL-frågor slutar i ett semikolon. MySQL behandlar inte en frågatills du skriver en semikolon.

Användarvärdar

följande exempel är utmatningen för föregående fråga:

SELECT User, Host, authentication_string FROM mysql.user;+------------------+-----------+-------------------------------------------+| User | Host | authentication_string |+------------------+-----------+-------------------------------------------+| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 || mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |+------------------+-----------+-------------------------------------------+

användare är associerade med en värd, specifikt den värd från vilken de ansluter.Rotanvändaren i det här exemplet definieras för localhost, för IP-adressen för localhost och serverns värdnamn.Du behöver vanligtvis ställa in en användare för endast en värd, den från vilken dutypiskt ansluter.

om du kör din applikation på samma dator som MySQLserver är värden som den ansluter till som standard localhost. Alla nya användare som du skapar måste ha localhost i sitt värdfält.

om din applikation ansluts på distans, är värdposten som MySQL letar efterär IP-adressen eller DNS-värdnamnet på fjärrdatorn (den från vilkenklienten kommer).

anonyma användare

i exempelutmatningen har en post ett värdvärde men inget användarnamn eller lösenord.Det är en anonym användare. När en klient ansluter utan användarnamn anges, det försöker ansluta som en anonym användare.

du vill vanligtvis inte ha några anonyma användare, men vissa MySQL-installationerinkluderar en som standard. Om du ser en, bör du antingen ta bort användaren (se användarnamnet med tomma citat, som ’ ’) eller ange ett lösenord för det.

skapa en databas

det finns en skillnad mellan en databasserver och en databas, även omdessa termer används ofta omväxlande. MySQL är en databasserver, vilket betyder detspår databaser och kontrollerar åtkomst till dem. Databasen lagrar data, ochDet är databasen som applikationer försöker komma åt när de interagerar med MySQL.

vissa program skapar en databas som en del av deras installationsprocess, men andra kräver att du själv skapar en databas och berättar applikationen om den.

för att skapa en databas, logga in på skalet mysql och kör följande kommando och ersätt demodb med namnet på databasen som du vill skapa:

CREATE DATABASE demodb;

när databasen har skapats kan du verifiera dess skapande genom att köra en fråga tilllista alla databaser. Följande exempel visar frågan och exempelutgången:

SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || demodb || mysql |+--------------------+3 rows in set (0.00 sec)

Lägg till en databasanvändare

när program ansluter till databasen med root-användaren har de vanligtvis fler privilegier än de behöver. Du kan lägga till användare som program kan använda för att ansluta till den nya databasen. I följande exempel skapas en användare som heter demouser.

  1. för att skapa en ny användare, kör följande kommando i skalet mysql :

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
  2. när du gör ändringar i användartabellen i mysql-databasen, tellMySQL att läsa ändringarna genom att spola privilegier, enligt följande:

    FLUSH PRIVILEGES;
  3. kontrollera att användaren skapades genom att köra en SELECT-fråga igen:

    SELECT User, Host, authentication_string FROM mysql.user;+------------------+-----------+-------------------------------------------+| User | Host | Password |+------------------+-----------+-------------------------------------------+| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 || mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 || demouser | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |+------------------+-----------+-------------------------------------------+

bevilja databasanvändarbehörigheter

direkt efter att du har skapat en ny användare har den inga behörigheter. Användaren kan logga in, men kan inte användas för att göra några databasändringar.

sammanfattning

om du bara skapar en databas och en användare är du klar. Koncepten som finns här bör ge dig en solid start för att lära dig mer.

  • konfigurera MySQL-servern på Ubuntu-operativsystemet
  • Återställ ett MySQL-rotlösenord

Lämna ett svar

Din e-postadress kommer inte publiceras.