MySQL in Compute Engine installieren

So installieren Sie MySQL manuell auf einer von Ihnen erstellten Compute Engine-Instanz:

Eine Übersicht über die verschiedenen Optionen zum Einrichten von MySQL in der Compute Engine finden Sie unter MySQL in Compute Engine. Informationen dazu, welche Compute Engine-Angebote für MySQL geeignet sind, finden Sie unter MySQL in Compute Engine konfigurieren.

Hinweise

Compute Engine-Instanz erstellen und SSH-Verbindung herstellen

Erstellen Sie eine Compute Engine-Instanz für MySQL und stellen Sie eine SSH-Verbindung zur neu erstellten Instanz her. Das Standardbetriebssystem ist Debian Version 10. Wenn Sie ein anderes Betriebssystem für diese Anleitung verwenden möchten, können Sie unter den Optionen auswählen, die auf der Seite Öffentliche Images in der Compute Engine-Dokumentation beschrieben werden.

Console

Compute Engine-Instanz erstellen

So erstellen Sie die Compute Engine-Instanz in der Trusted Cloud console:

  1. Öffnen Sie in der Trusted Cloud Console die Seite Compute Engine-VM-Instanzen.

    Zu Compute Engine-VM-Instanzen

  2. Wählen Sie Ihr neu erstelltes Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen (oder auf Neue Instanz, wenn bereits Instanzen vorhanden sind). Nennen Sie die Instanz mysql-test.

  4. Wählen Sie die gewünschte Leistung und Größe des Laufwerks aus.

  5. Wenn Sie ein anderes Betriebssystem angeben möchten, klicken Sie im Bereich Bootlaufwerk auf Ändern, um die Attribute für das Bootlaufwerk zu konfigurieren. Wählen Sie auf dem Tab Öffentliche Images ein Betriebssystem aus und klicken Sie dann auf Speichern.

  6. Erstellen Sie die Instanz ohne externe IP-Adresse, um die Best Practices für die Sicherheit zu erfüllen.

    Maximieren Sie Erweiterte Optionen und Netzwerk. Maximieren Sie unter den Netzwerkschnittstellen die Schnittstelle Standard und das Menü Externe IPv4-Adresse. Wählen Sie Keine aus.

  7. Klicken Sie auf Erstellen.

Network Address Translation einrichten

So richten Sie die Network Address Translation mit Cloud NAT ein und verwalten sie:

  1. Rufen Sie in der Trusted Cloud -Console die Seite Cloud NAT auf.

    Zur Seite "Cloud NAT"

  2. Klicken Sie auf Erste Schritte oder NAT-Gateway erstellen.

  3. Geben Sie als Gatewayname nat-simple-configuration ein.

  4. So wählen Sie den Cloud Router aus: Gehen Sie im Bereich Cloud Router auswählen so vor:

    1. Wählen Sie für Netzwerk die Option default aus.
    2. Wählen Sie unter Region die Region aus, die Sie für Ihre VM angegeben haben.
    3. Wählen Sie für Cloud Router die Option Neuen Router erstellen aus.

      Geben Sie im Dialogfeld Router erstellen einen Namen für den Router ein, z. B. nat-router-simple-configuration, und klicken Sie auf Erstellen.

  5. Klicken Sie auf Erweiterte Konfigurationen.

  6. Wählen Sie im Bereich Logging die Option Übersetzung und Fehler aus. Mit dieser Einstellung wird Cloud NAT so konfiguriert, dass alle Logs an Cloud Logging gesendet werden.

  7. Klicken Sie auf Erstellen.

SSH-Verbindung zur VM herstellen

So stellen Sie eine SSH-Verbindung her:

  1. Suchen Sie auf der Seite VM-Instanzen Ihre neue VM-Instanz in der Liste.

  2. Klicken Sie in der Spalte Verbinden für diese VM auf SSH. Das SSH-Terminal wird in einem Browserfenster geöffnet.

gcloud

  1. Verwenden Sie zum Erstellen einer Compute Engine-Instanz den Befehl gcloud compute instances create. Zur Angabe des Betriebssystems fügen Sie den Parameter --image-family gefolgt von der Image-Familie oder den Parameter --image gefolgt vom Image-Namen einer bestimmten Image-Version hinzu. Fügen Sie beispielsweise --image-family debian-10 hinzu, um das neueste Image aus der Debian 10-Familie zu verwenden. Wenn Sie öffentliche Images verwenden, muss das Image-Projekt mit dem Parameter --image-project angegeben werden.

    gcloud compute instances create \
        --image-family debian-10 \
        --image-project debian-cloud \
        --no-address \
      mysql-test
    
  2. Cloud Router-Instanz erstellen

    gcloud compute routers create nat-router-simple-configuration \
        --network=default
    
  3. Network Address Translation mit Cloud NAT einrichten und verwalten

    gcloud compute routers nats create nat-simple-configuration \
        --router=nat-router-simple-configuration \
        --auto-allocate-nat-external-ips \
        --nat-all-subnet-ip-ranges \
        --enable-logging
    
  4. Stellen Sie mit ssh eine Verbindung zur Instanz her.

    gcloud compute ssh \
        --tunnel-through-iap \
        mysql-test
    

    Die SSH-Verbindung wird über eine TCP-Weiterleitung hergestellt, die von Identity-Aware Proxy (IAP) verarbeitet wird.

MySQL installieren

In den folgenden Schritten wird beschrieben, wie Sie MySQL auf Ihrer Compute Engine-Instanz installieren.

Debian 10+

In dieser Anleitung wird MySQL 8 oder 5.7 installiert.

Versionen ab Debian 10 enthalten als Teil des Paketverwaltungssystems MariaDB anstelle von MySQL. MariaDB bietet weiterhin Kompatibilität mit dem MySQL-Protokoll, hat aber einen unabhängig weiterentwickeltes Feature-Set. Weitere Informationen finden Sie unter MariaDB im Vergleich zu MySQL.

Um MySQL zu installieren, laden Sie das Releasepaket herunter und installieren Sie es manuell mit dem dpkg-Befehl.

  1. Installieren Sie die wget-Abhängigkeit.

    sudo apt-get install -y wget
    
  2. Laden Sie das MySQL Community Server-Releasepaket herunter.

    export DEB_FILE=mysql-apt-config_0.8.20-1_all.deb
    cd /tmp
    curl -L --output ${DEB_FILE} \
         https://dev.mysql.com/get/${DEB_FILE}
    
  3. Prüfen Sie die Integrität der Releasepaketdatei.

    cat > ${DEB_FILE}.md5 << EOL
    799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE}
    EOL
    md5sum --check ${DEB_FILE}.md5
    

    Die Authentizität und Integrität der Datei wird bestätigt, wenn die folgende Ausgabe angezeigt wird:

    mysql-apt-config_0.8.20-1_all.deb: OK
    
  4. Nachdem Sie die Datei geprüft haben, fügen Sie das MySQL-Paket dem lokalen Paket-Repository hinzu.

    sudo dpkg -i ${DEB_FILE}
    

    Sie werden aufgefordert, die Installationsoptionen einschließlich der MySQL-Version zu bestätigen.

  5. Drücken Sie bei ausgewählter Menüoption MySQL Server & Cluster die Eingabetaste und wählen Sie dann mit den Pfeiltasten eine Serverversion aus.

    In dieser Anleitung müssen Sie entweder MySQL 8.0 oder 5.7 auswählen. Drücken Sie die Eingabetaste, nachdem Sie die Version ausgewählt haben.

  6. Wenn Sie mit den im Konfigurationsmenü ausgewählten Optionen zufrieden sind, wählen Sie mit den Pfeilen Ok im Menü aus und drücken Sie die Eingabetaste.

  7. Aktualisieren Sie den Paket-Cache.

    sudo apt-get update
    

    Wenn Sie einen GPG-Fehler wie Die folgenden Signaturen konnten nicht überprüft werden, da der öffentliche Schlüssel nicht verfügbar ist: NO_PUBKEY 467B942D3A79BD29 erhalten, importieren Sie die fehlenden GPG-Schlüssel mit einem Befehl, der diesem Muster folgt:

    sudo apt-key adv \
        --keyserver keyserver.ubuntu.com \
        --recv-keys 467B942D3A79BD29
    

    In der Demonstrationsfehlermeldung ist der fehlende öffentliche Schlüssel 467B942D3A79BD29. Geben Sie diesen Wert mit der Option --recv-keys an.

    Wiederholen Sie den Befehl, um den Paketcache zu aktualisieren.

  8. Installieren Sie MySQL. Bei der Installation wird der MySQL-Dienst automatisch gestartet.

    sudo apt-get -y install mysql-community-server
    

    Sie werden aufgefordert, einige Details für die Installation anzugeben, z. B. das Root-Passwort.

Debian 9

In dieser Anleitung wird MySQL 8 oder 5.7 installiert.

Standardmäßig installieren einige Debian-Versionen wie Debian 9 MariaDB als Standard-MySQL-Server. MariaDB ist weitgehend mit MySQL kompatibel und kann mit den gleichen Befehlen aufgerufen werden. Einzelheiten dazu, wie sich MariaDB von Standard-MySQL unterscheidet, finden Sie unter In Debian 9 von MySQL zu MariaDB wechseln.

So installieren Sie MySQL:

  1. Laden Sie das MySQL Community Server-Releasepaket herunter.

    export DEB_FILE=mysql-apt-config_0.8.17-1_all.deb
    cd /tmp
    curl -L --output ${DEB_FILE} \
         https://dev.mysql.com/get/${DEB_FILE}
    
  2. Prüfen Sie die Integrität der Releasepaketdatei.

    cat > ${DEB_FILE}.md5 << EOL
    9e393c991311ead61dcc8313aab8e230 ${DEB_FILE}
    EOL
    md5sum --check ${DEB_FILE}.md5
    

    Die Authentizität und Integrität der Datei wird bestätigt, wenn die folgende Ausgabe angezeigt wird.

    mysql-apt-config_0.8.17-1_all.deb: OK
    
  3. Nachdem Sie die Datei geprüft haben, fügen Sie das MySQL-Paket dem lokalen Paket-Repository hinzu.

    sudo dpkg -i ${DEB_FILE}
    

    Sie werden aufgefordert, die Installationsoptionen einschließlich der MySQL-Version zu bestätigen.

  4. Drücken Sie bei ausgewählter Menüoption MySQL Server & Cluster die Eingabetaste und wählen Sie dann mit den Pfeiltasten eine Serverversion aus.

    In dieser Anleitung müssen Sie entweder MySQL 8.0 oder 5.7 auswählen. Drücken Sie die Eingabetaste, nachdem Sie die Version ausgewählt haben.

  5. Wenn Sie mit den im Konfigurationsmenü ausgewählten Optionen zufrieden sind, wählen Sie mit den Pfeilen Ok im Menü aus und drücken Sie die Eingabetaste.

  6. Aktualisieren Sie den Paket-Cache.

    sudo apt-get update
    

    Wenn Sie einen GPG-Fehler wie Die folgenden Signaturen konnten nicht überprüft werden, da der öffentliche Schlüssel nicht verfügbar ist: NO_PUBKEY 467B942D3A79BD29 erhalten, importieren Sie die fehlenden GPG-Schlüssel mit einem Befehl, der diesem Muster folgt:

    sudo apt-key adv \
        --keyserver keyserver.ubuntu.com \
        --recv-keys 467B942D3A79BD29
    

    In der Demonstrationsfehlermeldung ist der fehlende öffentliche Schlüssel 467B942D3A79BD29. Geben Sie diesen Wert mit der Option --recv-keys an.

    Wiederholen Sie den Befehl, um den Paketcache zu aktualisieren.

  7. Installieren Sie MySQL. Bei der Installation wird der MySQL-Dienst automatisch gestartet.

    sudo apt-get -y install mysql-community-server
    

Ubuntu

Für Ubuntu 1804 und frühere Versionen wird in dieser Anleitung MySQL 5.7 installiert.
Bei Ubuntu 2004 und höher wird in dieser Anleitung MySQL 8 installiert.

  1. Aktualisieren Sie den Paketmanager apt-get.

    sudo apt-get update
    
  2. Installieren Sie MySQL. Bei der Installation wird der MySQL-Dienst automatisch gestartet.

    sudo apt-get -y install mysql-server
    
  3. Standardmäßig wird in Ubuntu-Distributionen der root-Nutzer mit dem Plug-in auth_socket authentifiziert. Führen Sie die folgende Abfrage aus, um diese Standardkonfiguration zu prüfen:

    echo "SELECT user, authentication_string, plugin, host
            FROM mysql.user WHERE user='root' ;" \
         | sudo mysql -t -u root
    

    Die Ausgabe zeigt, dass der root-Nutzer, der eine Verbindung über localhost herstellt, das Plug-in auth_socket verwendet:

    +------+-----------------------+-------------+-----------+
    | user | authentication_string | plugin      | host      |
    +------+-----------------------+-------------+-----------+
    | root |                       | auth_socket | localhost |
    +------+-----------------------+-------------+-----------+
    
  4. Ändern Sie diese Einstellung und ändern Sie das Root-Passwort in ein Passwort, das schwer zu erraten ist:

    export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD"
    echo "ALTER USER 'root'@'localhost'
          IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \
          | sudo mysql -u root
    

    Die Ausgabe enthält das neue Root-Passwort:

    Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
    

CentOS oder RHEL 7

In dieser Anleitung wird MySQL 8 installiert.

Die Version 7 von CentOS und RHEL enthält als Teil des Paketverwaltungssystems MariaDB anstelle von MySQL. Bevor Sie MySQL installieren, müssen Sie den Paketmanager aktualisieren.

  1. Laden Sie das MySQL Community Server-Releasepaket herunter.

    export RPM_FILE=mysql80-community-release-el7-4.noarch.rpm
    cd /tmp
    curl -L --output ${RPM_FILE} \
         https://dev.mysql.com/get/${RPM_FILE}
    
  2. Prüfen Sie die Integrität der Releasepaketdatei.

    cat > ${RPM_FILE}.md5 << EOL
    8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE}
    EOL
    md5sum --check ${RPM_FILE}.md5
    

    Die Authentizität und Integrität der Datei wird bestätigt, wenn die folgende Ausgabe angezeigt wird.

    mysql80-community-release-el7-4.noarch.rpm: OK
    
  3. Aktualisieren Sie den Paketmanager, damit er für MySQL eingerichtet ist.

    sudo rpm -Uvh ${RPM_FILE}
    
  4. Installieren Sie MySQL.

    sudo yum -y install mysql-community-server
    
  5. Sie starten MySQL-Server.

    sudo /usr/bin/systemctl start mysqld
    
  6. Rufen Sie das temporäre Root-Passwort aus Serverlogs ab.

    sudo cat /var/log/mysqld.log | grep -i 'temporary password'
    

Rocky Linux oder RHEL 8

In dieser Anleitung wird MySQL 8 installiert.

Version 8 von Rocky Linux, CentOS Stream und RHEL enthalten als Teil des Paketverwaltungssystems MariaDB anstelle von MySQL. Bevor Sie MySQL installieren, müssen Sie den Paketmanager aktualisieren.

  1. Laden Sie das MySQL Community Server-Releasepaket herunter.

    export RPM_FILE=mysql80-community-release-el8-2.noarch.rpm
    cd /tmp
    curl -L --output ${RPM_FILE} \
         https://dev.mysql.com/get/${RPM_FILE}
    
  2. Prüfen Sie die Integrität der Releasepaketdatei.

    cat > ${RPM_FILE}.md5 << EOL
    0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE}
    EOL
    md5sum --check ${RPM_FILE}.md5
    

    Die Authentizität und Integrität der Datei wird bestätigt, wenn die folgende Ausgabe angezeigt wird.

    mysql80-community-release-el8-2.noarch.rpm: OK
    
  3. Aktualisieren Sie den Paketmanager, damit er für MySQL eingerichtet ist.

    sudo rpm -iUvh ${RPM_FILE}
    
  4. Installieren Sie MySQL. Deaktivieren Sie während der Installation das AppStream-Repository, damit die Installation den Community-Server verwendet.

    sudo yum module disable -y mysql
    sudo yum install -y \
        --disablerepo=appstream \
      mysql-community-server
    
  5. Sie starten MySQL-Server.

    sudo /usr/bin/systemctl start mysqld
    
  6. Rufen Sie das temporäre Root-Passwort aus Serverlogs ab.

    sudo cat /var/log/mysqld.log | grep -i 'temporary password'
    

Sicherheit der MySQL-Installation verbessern

Führen Sie den Befehl mysql_secure_installation aus, um die Sicherheit Ihrer MySQL-Installation zu erhöhen. Wenn Sie während der Installation kein Passwort festgelegt haben, erstellen Sie eines in diesem Schritt. Weitere Informationen zu diesem Befehl finden Sie in der MySQL-Dokumentation zu mysql_secure_installation.

sudo mysql_secure_installation

Mit MySQL verbinden

Im Folgenden wird beschrieben, wie Sie von der Instanz mysql-test aus eine Verbindung zu MySQL herstellen.

MySQL 8.0

  1. Stellen Sie mit dem MySQL-Client eine Verbindung zu MySQL her.

    sudo mysql -u root -p
    

    Wenn Sie eine Verbindung zu MySQL herstellen, ändert sich die Eingabeaufforderung in mysql>.

    Danach können Sie MySQL-Befehle ausführen. Der folgende Befehl zeigt beispielsweise ausgeführte Threads an, einschließlich der aktuellen Verbindung.

    mysql> SHOW processlist;
    +----+-----------------+-----------+------+---------+------+------------------------+------------------+
    | Id | User            | Host      | db   | Command | Time | State                  | Info             |
    +----+-----------------+-----------+------+---------+------+------------------------+------------------+
    |  5 | event_scheduler | localhost | NULL | Daemon  | 1889 | Waiting on empty queue | NULL             |
    | 14 | root            | localhost | NULL | Query   |    0 | init                   | show processlist |
    +----+-----------------+-----------+------+---------+------+------------------------+------------------+
    2 rows in set (0.00 sec)

    Mit dem folgenden Befehl können Sie eine Liste mit Nutzern erstellen.

    mysql> SELECT User, Host, authentication_string FROM mysql.user;
    +------------------+-----------+------------------------------------------------------------------------+
    | User             | Host      | authentication_string                                                  |
    +------------------+-----------+------------------------------------------------------------------------+
    | mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
    | root             | localhost | $A$005$,BS{G+*#cVYxb6x40q0aFS5dp2/Kz6u2vennR5qe0eBKVA/6VW5B            |
    +------------------+-----------+------------------------------------------------------------------------+
    4 rows in set (0.00 sec)
  2. Nachdem Sie die Befehle ausgeführt haben, beenden Sie den MySQL-Client mit dem Befehl exit. Danach führen Sie exit noch einmal aus, um sich von der Compute Engine-Instanz abzumelden.

    mysql> exit
    Bye

MySQL 5.7

  1. Stellen Sie mit dem MySQL-Client eine Verbindung zu MySQL her.

    sudo mysql -u root -p
    

    Wenn Sie eine Verbindung zu MySQL herstellen, ändert sich die Eingabeaufforderung in mysql>.

    Danach können Sie MySQL-Befehle ausführen. Der folgende Befehl zeigt beispielsweise ausgeführte Threads an, einschließlich der aktuellen Verbindung.

    mysql> SHOW processlist;
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host      | db   | Command | Time | State | Info             |
    +----+------+-----------+------+---------+------+-------+------------------+
    | 51 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
    +----+------+-----------+------+---------+------+-------+------------------+
    1 row in set (0.00 sec)

    Mit dem folgenden Befehl können Sie eine Liste mit Nutzern erstellen.

    mysql> SELECT User, Host, authentication_string FROM mysql.user;
    +---------------+-----------+-------------------------------------------+
    | User          | Host      | authentication_string                     |
    +---------------+-----------+-------------------------------------------+
    | root          | localhost | *A047B05AAB007B33F8F2BD1FD404661D167D6348 |
    | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    +---------------+-----------+-------------------------------------------+
    3 rows in set (0.00 sec)
  2. Nachdem Sie die Befehle ausgeführt haben, beenden Sie den MySQL-Client mit dem Befehl exit. Danach führen Sie exit noch einmal aus, um sich von der Compute Engine-Instanz abzumelden.

    mysql> exit
    Bye

Nächste Schritte

  • Weitere Informationen zu MySQL finden Sie in der offiziellen MySQL-Dokumentation.
  • Im Cloud Marketplace finden Sie eine Vielzahl von Entwicklungspaketen, die MySQL verwenden.
  • Wenn Ihre Anforderungen Hochverfügbarkeit und Skalierbarkeit umfassen, sollten Sie die folgenden Optionen in Betracht ziehen:
    • Installieren Sie MySQL Cluster in der Compute Engine, um durch Shared-Nothing-Clustering und automatisches Sharding eine hohe Verfügbarkeit und Skalierbarkeit zu erreichen.
    • Percona
    • Installiere Vitess, die Open-Source-Lösung, die seit 2011 den gesamten YouTube-Traffic weiterleitet. Vitess eignet sich besonders für Anwendungen, die in Containern ausgeführt werden. Weitere Informationen zur Verwendung von Vitess in einer containerisierten Umgebung finden Sie in Vitess auf Kubernetes ausführen.