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
- Aktivieren Sie die Compute Engine API in der Trusted Cloud Console.
- Google Cloud CLI installieren
Konfigurieren Sie den Arbeitsbereich, damit Befehle weniger umfangreich werden. Ersetzen Sie in den folgenden Befehlen die Werte für PROJECT_ID, REGION und ZONE. Eine vollständige Liste der Zonen finden Sie unter Verfügbare Regionen und Zonen.
gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
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:
Öffnen Sie in der Trusted Cloud Console die Seite Compute Engine-VM-Instanzen.
Wählen Sie Ihr neu erstelltes Projekt aus und klicken Sie auf Weiter.
Klicken Sie auf Instanz erstellen (oder auf Neue Instanz, wenn bereits Instanzen vorhanden sind). Nennen Sie die Instanz mysql-test.
Wählen Sie die gewünschte Leistung und Größe des Laufwerks aus.
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.
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.
Klicken Sie auf Erstellen.
Network Address Translation einrichten
So richten Sie die Network Address Translation mit Cloud NAT ein und verwalten sie:
Rufen Sie in der Trusted Cloud -Console die Seite Cloud NAT auf.
Klicken Sie auf Erste Schritte oder NAT-Gateway erstellen.
Geben Sie als Gatewayname
nat-simple-configuration
ein.So wählen Sie den Cloud Router aus: Gehen Sie im Bereich Cloud Router auswählen so vor:
- Wählen Sie für Netzwerk die Option default aus.
- Wählen Sie unter Region die Region aus, die Sie für Ihre VM angegeben haben.
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.
Klicken Sie auf Erweiterte Konfigurationen.
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.
Klicken Sie auf Erstellen.
SSH-Verbindung zur VM herstellen
So stellen Sie eine SSH-Verbindung her:
Suchen Sie auf der Seite VM-Instanzen Ihre neue VM-Instanz in der Liste.
Klicken Sie in der Spalte Verbinden für diese VM auf SSH. Das SSH-Terminal wird in einem Browserfenster geöffnet.
gcloud
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
Cloud Router-Instanz erstellen
gcloud compute routers create nat-router-simple-configuration \ --network=default
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
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.
Installieren Sie die
wget
-Abhängigkeit.sudo apt-get install -y wget
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}
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
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.
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.
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.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.
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:
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}
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
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.
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.
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.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.
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.
Aktualisieren Sie den Paketmanager
apt-get
.sudo apt-get update
Installieren Sie MySQL. Bei der Installation wird der MySQL-Dienst automatisch gestartet.
sudo apt-get -y install mysql-server
Standardmäßig wird in Ubuntu-Distributionen der
root
-Nutzer mit dem Plug-inauth_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 überlocalhost
herstellt, das Plug-inauth_socket
verwendet:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Ä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.
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}
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
Aktualisieren Sie den Paketmanager, damit er für MySQL eingerichtet ist.
sudo rpm -Uvh ${RPM_FILE}
Installieren Sie MySQL.
sudo yum -y install mysql-community-server
Sie starten MySQL-Server.
sudo /usr/bin/systemctl start mysqld
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.
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}
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
Aktualisieren Sie den Paketmanager, damit er für MySQL eingerichtet ist.
sudo rpm -iUvh ${RPM_FILE}
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
Sie starten MySQL-Server.
sudo /usr/bin/systemctl start mysqld
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
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)
Nachdem Sie die Befehle ausgeführt haben, beenden Sie den MySQL-Client mit dem Befehl
exit
. Danach führen Sieexit
noch einmal aus, um sich von der Compute Engine-Instanz abzumelden.mysql> exit
Bye
MySQL 5.7
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)
Nachdem Sie die Befehle ausgeführt haben, beenden Sie den MySQL-Client mit dem Befehl
exit
. Danach führen Sieexit
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.