MySQL installen op Ubuntu
Home

MySQL installen op Ubuntu

MySQL installen op Ubuntu

Volg de handleiding uit de lijst die overeenkomt met de versie die je wilt installeren.

Bronnen

  1. How to Allow Remote Connections to MySQL, March 26, 2020

  2. Sergiu, How to Install MySQL in Ubuntu Linux, April 16, 2019

  3. Mark Drake, How To Install MySQL on Ubuntu 18.04, April 27, 2018

Installeren

  1. MySQL installeren vanuit de Ubuntu-repositories
    1. Zorg er allereerst voor dat uw repositories worden bijgewerkt door het volgende commando uit te voeren:
      sudo apt update
    2. Om MySQL (laatste versie) 5.7 te installeren, typ je gewoon:
      sudo apt install mysql-server -y
  2. Veilige MySQL-serverinstallatie

    Voer de volgende opdracht uit om de beveiliging van de MySQL-server aan te passen:

    sudo mysql_secure_installation
    1. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

    2. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

    3. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

    4. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

  3. Doorgaans wordt de MySQL-service automatisch gestart zodra het pakket is geconfigureerd. Om te controleren of de MySQL-server actief is of niet, gebruik je deze opdracht:
    sudo systemctl status mysql

Voorbereiden voor remote connectie

Het is niet ongebruikelijk om databases en webservers op dezelfde lokale computer te hosten. Veel organisaties gaan nu echter over naar een meer gedistribueerde omgeving.

Een aparte databaseserver kan de beveiliging en hardwareprestaties verbeteren en laat toe om resources snel te schalen. In dergelijke gevallen is het belangrijk om te leren hoe je externe bronnen effectief kunt beheren.

  1. Ubuntu
    1. Wijzig het MySQL configuratiebestand
      1. Gebruik je favoriete teksteditor om het bestand mysqld.cnf te openen. Ik gebruik hier de nano-teksteditor. Voer de volgende opdracht uit om toegang te krijgen tot het MySQL-serverconfiguratiebestand:
        sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
      2. Het nieuwe IP-adres moet overeenkomen met het adres van de machine die op afstand toegang moet hebben tot de MySQL-server. Als je MySQL aan 0.0.0.0 bindt, kan elke machine, die de MySQL-server aanspreekt, er ook verbinding mee maken.

        Vervang xxx.xxx.xxx.xxx door je eigen IP adres:

        bind-address = xxx.xxx.xxx.xxx all

        of voeg het volgende bind-adres toe als geen IP wilt specificeren:

        bind-address = 0.0.0.0

        Nadat u de nodige wijzigingen heeft aangebracht, slaat u het configuratiebestand op en sluit u het af.

      3. Nadat je het IP adres hebt vervangen moet je de MySQL server stoppen en weer opstarten:
        sudo systemctl restart mysql
    2. Stel een firewall in om externe MySQL-verbinding toe te staan:
      UFW is de standaard firewalltool in Ubuntu. Typ in een terminalvenster de volgende opdracht om verkeer toe te staan en het IP-adres en de poort af te stemmen:
      sudo ufw allow from remote_ip_address to any port 3306
      
      Je opdrachten gebruiken om poort 3306 tot en met UFW toe te staan:
      sudo ufw allow out 3306/tcp 
      sudo ufw allow in 3306/tcp

      En om te controleren of de regels zijn toegevoegd

      sudo ufw status
    3. Schakel Ubuntu-firewall in
      Het is heel eenvoudig om de ufw in te schakelen met het ufw enable-commando, maar voordat we de firewall inschakelen, moeten we ervoor zorgen dat we ook een firewallregel toevoegen om de SSH-verbinding met onze Ubuntu-server mogelijk te maken. Anders krijg je geen toegang meer de server.
      Het eerste commando opent de ssh-poort 22 van de Ubuntu-firewall, daarna schakelen we de firewall in met behulp van de ufw-opdracht:
      sudo ufw allow 22/tcp
      sudo ufw enable
      
  2. MySQL
    1. Hoe verleen ik externe toegang tot een nieuwe MySQL-database?

      1. Als je nog geen databases hebt, kan jeeen database maken door het volgende commando in uw MySQL-shell te typen:

        CREATE DATABASE ‘yourDB’;

        En een externe gebruikerstoegang verlenen tot een specifieke database:

        GRANT ALL PRIVILEGES ON yourDB.* TO user1@’133.155.44.103’ IDENTIFIED BY ‘password1’;
      2. Externe toegang verleent tot bestaande MySQL-database

        Het verlenen van externe toegang aan een gebruiker voor een bestaande database vereist twee opdrachten:

        update db set Host=’133.155.44.103' where Db='yourDB';
        update user set Host=’133.155.44.103' where user='user1';

        De gebruiker met de naam user1 heeft nu toegang tot de database vanaf een externe locatie die wordt geïdentificeerd door het IP adres 133.155.44.103.

      3. Om een externe gebruiker met de juiste privileges te laten verbinden, moet die gebruiker zowel van de localhost als vanaf de '%' toegang krijgen:
        CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
        CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

        vervolgens:

        GRANT ALL ON *.* TO 'myuser'@'localhost' WITH GRANT OPTION;
        GRANT ALL ON *.* TO 'myuser'@'%' WITH GRANT OPTION;

        tenslotte:

        FLUSH PRIVILEGES; 
        EXIT;
  3. Validatie vereisten voor paswoorden bekijken;
    SHOW VARIABLES LIKE 'cvalidate_password%';
  4. Een MySQL gebruiker verwijderen:
    DROP USER 'jeffrey'@'localhost'
  5. Paswoord wijzigen:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    ALTER USER 'username' IDENTIFIED BY 'password'
  6. Remote connectie testen:

    Als de databaseserver zich op een externe computer bevindt, probeer dan de client-server-connectiviteit te testen met behulp van de ping-opdracht, bijvoorbeeld:

    $ ping server_ip_address

    Als er een connectie is gebruik dan de ps instructie om informatie te tonen over de geselecteerde actieve processen. Gebruik de opties:

    • -A – activates selection of all processes
    • -f – enables full format listing

    De instructie is dan:

    $ ps -Af | grep mysqld

    Start de MySQL server:

    sudo systemctl start mysql.service

    Als je nog steeds geen connectie hebt check de poort (3306) waarop de MySQL server luistert:

    $ netstat -lnp | grep mysql

    waarbij de opties zijn:

    • -l – displays listening ports
    • -n – enables display of numerical addresses
    • -p – shows PID and name of the program owning the socket

JI
2020-10-10 05:14:05