februari 3, 2022

ondersteuningsnetwerk

MySQL Server installeren op het Ubuntu-besturingssysteem

laatst bijgewerkt op: 2019-12-20

geschreven door: Jered Heeschen

MySQL is een open-source relationele database die gratis is en veel gebruikt. Het is een goede keuze als je weet dat je een database nodig hebt, maar niet veel weet over alle beschikbare opties.

dit artikel beschrijft een basisinstallatie van een MySQL-databaseserver op het Ubuntu-besturingssysteem. Het kan nodig zijn om andere pakketten te installeren om applicaties MySQL te laten gebruiken, zoals extensies voor PHP. Controleer uw aanvraagdocumentatie voor details.

installeer MySQL

installeer de MySQL server met behulp van de Ubuntu operating system package manager:

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

het installatieprogramma installeert MySQL en alle afhankelijkheden.

als het secure installation utility niet automatisch start nadat de installatie is voltooid, voer je het volgende commando in:

sudo mysql_secure_installation utility

dit hulpprogramma vraagt u om het MySQL root-wachtwoord te definiëren en andere beveiligingsgerelateerde opties, waaronder het verwijderen van externe toegang tot de root-gebruiker en het instellen van het root-wachtwoord.

remote access

Als u iptables hebt ingeschakeld en verbinding wilt maken met de MySQL-database vanaf een andere machine, moet u een poort openen in de firewall van uw server (de defaultport is 3306). Je hoeft dit niet te doen als de applicatie die mysqlis gebruikt draait op dezelfde server.

voer het volgende commando uit om Externe toegang tot de MySQL-server toe te staan:

sudo ufw enablesudo ufw allow mysql

Start de MySQL service

nadat de installatie is voltooid, kunt u de database service starten met het volgende commando. Als de service al gestart is, krijgt u een bericht dat de service al draait:

sudo systemctl start mysql

start bij herstarten

om er zeker van te zijn dat de databaseserver start na een herstart, voer je het volgende commando uit:

sudo systemctl enable mysql

configureer interfaces

MySQL, is standaard niet langer gebonden aan (luisteren naar ) enige op afstand toegankelijke interfaces.Bewerk de” bind-address ” richtlijn in /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. )

Herstart de MySQL service.

sudo systemctl restart mysql

Start de MySQL shell

er is meer dan één manier om te werken met een MySQL server, maar dit artikel richt zich op de meest basale en compatibele aanpak, de mysql shell.

  1. voer na de opdrachtprompt het volgende commando uit om de mysqlshell te starten en voer het in als de root gebruiker:

    /usr/bin/mysql -u root -p
  2. wanneer u om een wachtwoord wordt gevraagd, voert u het wachtwoord in dat u hebt ingesteld op installatietijd, of als u het nog niet hebt ingesteld, drukt u op Enter om nopassword in te dienen.

    de volgende mysql shell prompt moet verschijnen:

    mysql>

Stel het root wachtwoord in

als u ingelogd bent door een leeg wachtwoord in te voeren, of als u het rootpassword wilt wijzigen dat u hebt ingesteld, kunt u het wachtwoord aanmaken of wijzigen.

  1. voor versies ouder dan MySQL 5.7, voer het volgende commando in de mysql shell, vervang password met uw nieuwe wachtwoord:

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

    voer voor versie MySQL 5.7 en hoger het volgende commando in in de mysql shell, waarbij password wordt vervangen door uw nieuwe wachtwoord:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
  2. om de wijziging van kracht te laten worden, herlaadt u de opgeslagen gebruikersinformatie met het volgende commando:

    FLUSH PRIVILEGES;

    opmerking: We gebruiken all-caps voor SQL-opdrachten. Als je die commando ‘ s in kleine letters typt, zullen ze werken. Volgens afspraak worden de commando ‘ s geschreven in all-caps om ze te onderscheiden van veldnamen en andere gegevens die worden gemanipuleerd.

als je het root wachtwoord later moet resetten, zie een MySQL root wachtwoord resetten.

bekijk gebruikers

MySQL slaat de gebruikersinformatie op in zijn eigen database. De naam van de databaseis mysql. In die database staat de gebruikersinformatie in een tabel, adataset, genaamd user. Als u wilt zien welke gebruikers zijn ingesteld in de mysqluser tabel, voer het volgende commando:

SELECT User, Host, authentication_string FROM mysql.user;

de volgende lijst beschrijft de delen van dat Commando:

  • SELECT vertelt MySQL dat u om gegevens vraagt.
  • User, Host, authentication_string vertelt MySQL in welke velden u het wilt plaatsen. Velden zijn Categorieën voor de gegevens in een tabel. In dit geval, je bent op zoek naar de gebruikersnaam, de host geassocieerd met de gebruikersnaam, en encrypted password entry.
  • van mysql.user ” vertelt MySQL om de gegevens van de mysqldatabase en de user table te krijgen.
  • een puntkomma (;) beëindigt het commando.

Opmerking: alle SQL-queries eindigen op een puntkomma. MySQL verwerkt geen queryunty totdat je een puntkomma typt.

User hosts

het volgende voorbeeld is de uitvoer voor de vorige query:

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 |+------------------+-----------+-------------------------------------------+

gebruikers worden geassocieerd met een host, in het bijzonder de host van waaruit ze verbinding maken.De root gebruiker in dit voorbeeld wordt gedefinieerd voor localhost, voor het IP adres van localhost, en de hostnaam van de server.Meestal moet je een gebruiker instellen voor slechts één host, degene van waaruit je youtypisch verbinding maakt.

als u uw toepassing draait op dezelfde computer als de MySQLserver, is de host waarmee het standaard verbinding maakt localhost. Alle nieuwe gebruikers die u maakt moet localhost in hun Host veld hebben.

als uw toepassing op afstand verbinding maakt, is de hostingang waar MySQL naar zoekt het IP-adres of de DNS-hostnaam van de externe computer (degene waar de client vandaan komt).

anonieme gebruikers

in de voorbeelduitvoer heeft één regel een hostwaarde, maar geen gebruikersnaam of wachtwoord.Dat is een anonieme gebruiker. Wanneer een client verbinding maakt zonder gebruikersnaam opgegeven, probeert deze verbinding te maken als een anonieme gebruiker.

u wilt meestal geen anonieme gebruikers, maar sommige MySQL-installaties bevatten er standaard een. Als je er een ziet, moet je ofwel de gebruiker verwijderen(refereer naar de gebruikersnaam met lege aanhalingstekens, zoals ‘ ‘) of er een wachtwoord voor instellen.

Maak een database

er is een verschil tussen een databaseserver en een database, ook al worden deze termen vaak door elkaar gebruikt. MySQL is een database server, wat betekent dat ittracks databases en controleert de toegang tot hen. De database slaat de gegevens op, endit is de database die applicaties proberen te benaderen wanneer ze interactie hebben met MySQL.

sommige toepassingen maken een database als onderdeel van hun setup proces, maar andere vereisen dat je zelf een database maakt en de Application hierover vertelt.

om een database aan te maken, log in op de mysql shell en voer het volgende commando uit,waarbij demodb wordt vervangen door de naam van de database die u wilt aanmaken.:

CREATE DATABASE demodb;

nadat de database is aangemaakt, kunt u de creatie ervan controleren door een query uit te voeren om alle databases op te sommen. Het volgende voorbeeld toont de query en voorbeeld uitvoer:

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

een database-Gebruiker toevoegen

wanneer toepassingen verbinding maken met de database met behulp van de root-gebruiker, hebben ze meestal meer rechten dan ze nodig hebben. U kunt gebruikers toevoegen die toepassingen kunnen gebruiken om verbinding te maken met de nieuwe database. In het volgende voorbeeld wordt een gebruiker genaamd demouser aangemaakt.

  1. om een nieuwe gebruiker aan te maken, voer je het volgende commando uit in de mysql shell:

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
  2. wanneer u wijzigingen aanbrengt in de gebruikerstabel in de MySQL database, tellMySQL om de wijzigingen te lezen door de privileges als volgt te wissen, :

    FLUSH PRIVILEGES;
  3. Controleer of de gebruiker is gemaakt door opnieuw een SELECT query uit te voeren:

    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 |+------------------+-----------+-------------------------------------------+

geef database-gebruikersrechten

direct nadat u een nieuwe gebruiker hebt gemaakt, heeft deze geen rechten. De gebruiker kan inloggen, maar kan niet worden gebruikt om database wijzigingen aan te brengen.

samenvatting

als u alleen een database en een gebruiker aanmaakt, bent u klaar. De concepten die hier worden besproken, moeten u een solide start geven om meer te leren.

  • MySQL-server configureren op het Ubuntu-besturingssysteem
  • een MySQL-rootwachtwoord opnieuw instellen

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.