Hai a disposizione diverse opzioni per il deployment di MySQL nell'ambito del tuo progetto Google Cloud. Puoi utilizzare Cloud SQL, Google Cloud Marketplace o installare manualmente MySQL in Compute Engine.
Cloud SQL offre MySQL come servizio web. Puoi utilizzare Cloud SQL per ospitare il tuo database MySQL nel cloud di Google e lascia che sia Google Cloud attività amministrative quali replica, gestione delle patch e database gestione dei dispositivi.
Cloud Marketplace offre un'interfaccia click-to-deploy semplice che semplifica l'installazione da MySQL in un'istanza Compute Engine. Cloud Marketplace include non solo un'installazione MySQL autonoma, ma anche diverse stack di sviluppo che utilizzano MySQL, inclusi stack LAMP, stack LEMP e Cluster MySQL Percona.
Se preferisci installare e personalizzare manualmente MySQL, puoi utilizzare Compute Engine di creare un database MySQL in pochi minuti. Questo documento fornisce indicazioni su quale opzione scegliere e descrive le l'installazione manuale di un database MySQL su Compute Engine.
Come scegliere l'opzione di deployment MySQL giusta
Cloud SQL è un'ottima opzione se vuoi la comodità di avere Google Cloud si occupa dell'amministrazione del database e del server di backend faccende domestiche. Ad esempio, Cloud SQL fornisce backup automatizzati recupero point-in-time. Inoltre, i dati vengono replicati su più zone per una maggiore disponibilità e resilienza.
Potresti scegliere di installare MySQL su Compute Engine se hai bisogno di un Funzionalità MySQL non supportata da Cloud SQL. Ad esempio: Cloud SQL non supporta le funzioni definite dall'utente o il comando SUPER di accesso. Per ulteriori informazioni, vedi domande frequenti su Cloud SQL.
Se decidi di installare MySQL su Compute Engine, puoi utilizzare Cloud Marketplace per eseguire il deployment di un'installazione MySQL oppure puoi eseguire il deployment installare MySQL su un'istanza Compute Engine. Cloud Marketplace offre un modo conveniente per eseguire il deployment di MySQL come parte di stack di sviluppo più grandi. Cloud Marketplace offre diverse opzioni per le installazioni MySQL, inclusa un'installazione MySQL autonoma, stack LAMP, stack LEMP, Nginx Stack, un'installazione del cluster MySQL Percona e diverse altre opzioni.
Se le offerte di Cloud Marketplace non soddisfano le tue esigenze, puoi installare manualmente MySQL su un'istanza Compute Engine. Potresti, ad esempio, Ad esempio, vuoi eseguire il deployment di MySQL su un'immagine personalizzata che hai creato oppure potresti voler avere il controllo completo del processo di installazione.
Per installare manualmente MySQL su un'istanza Compute Engine, ti servono solo creare un'istanza Compute Engine e installare MySQL direttamente in esecuzione in un'istanza Compute Engine.
Per ulteriori informazioni su ciascuna opzione, consulta le seguenti risorse:
- Per Cloud SQL, consulta la documentazione di Cloud SQL per MySQL.
Per Cloud Marketplace, vedi le opzioni per le installazioni di MySQL nella console Google Cloud:
Per l'installazione manuale di MySQL su un'istanza Compute Engine, vedere la parte restante di questo documento.
Obiettivi
- Crea un'istanza di Compute Engine
- Installa MySQL
- Connettiti a MySQL
Prerequisiti
Crea un nuovo progetto nella console Google Cloud. Puoi utilizzare un progetto esistente, ma la creazione di un nuovo progetto esegue la pulizia è più facile.
Puoi completare tutti i passaggi in questo documento utilizzando nella console Google Cloud, ma se preferisci usare gcloud CLI, segui questi passaggi per abilitare l'API Compute Engine e installare Google Cloud CLI.
Utilizzare la console Google Cloud per abilitare l'API Compute Engine.
Installa gcloud CLI.
Configura l'area di lavoro per rendere i comandi meno dettagliati. Sostituisci i valori del progetto con
PROJECT_ID
,REGION
eZONE
nel seguenti comandi. Per l'elenco completo delle zone, consultare Regioni e regioni disponibili zone.gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
Crea un'istanza di Compute Engine
Crea un'istanza Compute Engine per MySQL e stabilisci un SSH all'istanza appena creata. Il sistema operativo predefinito è Debian alla versione 10. Se preferisci utilizzare un sistema operativo diverso per questo tutorial, puoi scegliere tra le opzioni descritte immagini pubbliche della documentazione di Compute Engine.
Console
Per creare un'istanza Compute Engine nella console Google Cloud:
Nella console Google Cloud, vai alla VM di Compute Engine di Compute Engine.
Seleziona il progetto appena creato e fai clic su Continua.
Fai clic su Crea istanza (Nuova istanza se hai già di Compute Engine). Assegna all'istanza il nome mysql-test.
Per specificare un sistema operativo diverso da quello predefinito: Nella sezione Disco di avvio, fai clic su Cambia per configurare del disco di avvio. Nella scheda Immagini pubbliche, seleziona un sistema operativo e fai clic su Salva.
Per rispettare le best practice per la sicurezza, crea la tua istanza senza un indirizzo IP esterno.
Espandi Opzioni avanzate ed espandi Networking. Nella sezione Rete interfacce , espandi l'interfaccia predefinita e nell'interfaccia Menu Indirizzo IPv4, seleziona Nessuno.
Fai clic su Crea.
Per configurare e gestire Network Address Translation con Cloud NAT:
Nella console Google Cloud, vai alla pagina Cloud NAT.
Fai clic su Inizia o Crea gateway Cloud NAT.
In Nome gateway, inserisci
nat-simple-configuration
.Per la rete VPC per il gateway NAT, scegli default.
In Area geografica per il gateway NAT, scegli quella che hai scelto. in alto.
Per Router Cloud, scegli Crea nuovo router.
Nella finestra di dialogo, inserisci un Nome per il router,
nat-router-simple-configuration
e fai clic su Crea.Fai clic su Configurazione avanzata.
In Stackdriver Logging, seleziona Traduzione ed errori. Questo e invia tutti i log a Cloud Logging.
Fai clic su Crea.
Per stabilire una connessione SSH:
Nella pagina Istanze VM, individua nell'elenco la nuova istanza VM.
Nella colonna Connetti, fai clic su SSH. Il terminale SSH si apre finestra del browser.
gcloud
Per creare un'istanza Compute Engine, utilizza il comando
gcloud compute instances create
. Per specificare il sistema operativo, aggiungi l'elemento Parametro--image-family
seguito da famiglia di immagini o il parametro--image
seguito dal nome dell'immagine per uno specifico dell'immagine. Ad esempio, per utilizzare l'immagine più recente Famiglia Debian 10, aggiungi--image-family debian-10
. Con pubblico immagini, il progetto immagine deve essere fornito utilizzando il parametro--image-project
.gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
Creare un semplice router Cloud.
gcloud compute routers create nat-router-simple-configuration \ --network=default
Configura e gestisci Network Address Translation con Cloud NAT.
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
Connettiti all'istanza utilizzando
ssh
.gcloud compute ssh \ --tunnel-through-iap \ mysql-test
Le connessioni SSH vengono effettuate tramite l'inoltro TCP gestito Identity-Aware Proxy (IAP).
Installa MySQL
I passaggi seguenti descrivono come installare MySQL su Compute Engine in esecuzione in un'istanza Compute Engine.
Debian 10 o versioni successive
Queste istruzioni installano MySQL 8 o 5.7.
Le versioni 10 e successive di Debian contengono MariaDB anziché MySQL come parte del di gestione dei pacchetti. MariaDB mantiene la compatibilità con MySQL ma ha un insieme di funzionalità in continua evoluzione. Per ulteriori dettagli, consulta MariaDB e MySQL.
Per installare MySQL, scarica il pacchetto di release e installalo manualmente utilizzando
il comando dpkg
.
Installa la dipendenza
wget
.sudo apt-get install -y wget
Scarica il pacchetto di rilascio di MySQL Community Server.
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}
Verifica l'integrità del file del pacchetto di release.
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se trovi il successivo all'output.
mysql-apt-config_0.8.20-1_all.deb: OK
Dopo aver verificato il file, aggiungi il pacchetto MySQL all'istanza locale un repository di pacchetti.
sudo dpkg -i ${DEB_FILE}
Ti viene chiesto di confermare le opzioni di installazione, tra cui la versione MySQL.
Con i migliori database MySQL Server e Opzione di menu Cluster selezionata, premi Restituisci, quindi utilizza i tasti freccia per scegliere una versione del server.
Questa guida prevede di scegliere MySQL 8.0 o 5.7. Premi Premi Invio sulla tastiera dopo aver selezionato la versione.
Quando le opzioni selezionate nella configurazione ti soddisfano menu, usa i tasti freccia per selezionare
Ok
nel menu e premi Invio sulla tastiera.Aggiorna la cache del pacchetto.
sudo apt-get update
Se ricevi un errore GPG simile a Le seguenti firme non sono state trovate essere verificata perché la chiave pubblica non è disponibile: NO_PUBKEY 467B942D3A79BD29, importa le chiavi GPG mancanti con un comando segue questo schema:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Nel messaggio di errore dimostrativo, la chiave pubblica mancante è
467B942D3A79BD29
; fornisci questo valore con l'opzione--recv-keys
.Ripeti il comando per aggiornare la cache del pacchetto.
Installa MySQL. La procedura di installazione avvia il servizio MySQL per te.
sudo apt-get -y install mysql-community-server
Ti viene chiesto di fornire alcuni dettagli dell'installazione come la password root.
Debian 9
Queste istruzioni installano MySQL 8 o 5.7.
Per impostazione predefinita, alcune versioni di Debian, ad esempio Debian 9, installano MariaDB come il server MySQL predefinito. MariaDB è progettato per essere ampiamente compatibile MySQL e può essere richiamato utilizzando gli stessi comandi. Per i dettagli su come MariaDB è diverso da MySQL standard, vedi Passaggio da MySQL a MariaDB in Debian 9.
Per installare MySQL, segui queste istruzioni:
Scarica il pacchetto di rilascio di MySQL Community Server.
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}
Verifica l'integrità del file del pacchetto di release.
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se trovi il successivo all'output.
mysql-apt-config_0.8.17-1_all.deb: OK
Dopo aver verificato il file, aggiungi il pacchetto MySQL all'istanza locale un repository di pacchetti.
sudo dpkg -i ${DEB_FILE}
Ti viene chiesto di confermare le opzioni di installazione, tra cui la versione MySQL.
Con i migliori database MySQL Server e Opzione di menu Cluster selezionata, premi Restituisci, quindi utilizza i tasti freccia per scegliere una versione del server.
Questa guida prevede di scegliere MySQL 8.0 o 5.7. Premi Premi Invio sulla tastiera dopo aver selezionato la versione.
Quando le opzioni selezionate nella configurazione ti soddisfano menu, usa i tasti freccia per selezionare
Ok
nel menu e premi Invio sulla tastiera.Aggiorna la cache del pacchetto.
sudo apt-get update
Se ricevi un errore GPG simile a Le seguenti firme non sono state trovate essere verificata perché la chiave pubblica non è disponibile: NO_PUBKEY 467B942D3A79BD29, importa le chiavi GPG mancanti con un comando segue questo schema:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Nel messaggio di errore dimostrativo, la chiave pubblica mancante è
467B942D3A79BD29
; fornisci questo valore con l'opzione--recv-keys
.Ripeti il comando per aggiornare la cache del pacchetto.
Installa MySQL. La procedura di installazione avvia il servizio MySQL per te.
sudo apt-get -y install mysql-community-server
Ubuntu
Per Ubuntu 1804 e versioni precedenti, queste istruzioni installano MySQL 5.7.
Per Ubuntu 2004 e versioni successive, queste istruzioni installano MySQL 8.
Aggiorna il gestore di pacchetti
apt-get
.sudo apt-get update
Installa MySQL. La procedura di installazione avvia il servizio MySQL per te.
sudo apt-get -y install mysql-server
Per impostazione predefinita, nelle distribuzioni Ubuntu, mysql autentica l'utente
root
con il plug-inauth_socket
. Esegui questa query per verificare l'impostazione predefinita configurazione:echo "SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user='root' ;" \ | sudo mysql -t -u root
L'output mostra che l'utente
root
che si connette dalocalhost
utilizza il plug-inauth_socket
:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Cambia questa impostazione e cambia la password root con una password difficili da indovinare:
export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD" echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \ | sudo mysql -u root
L'output contiene la nuova password root:
Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
CentOS o RHEL 7
Queste istruzioni installano MySQL 8.
La versione 7 di CentOS e RHEL contengono MariaDB anziché MySQL come parte del proprio sistema di gestione dei pacchetti. Per installare MySQL, devi aggiorna innanzitutto il gestore di pacchetti.
Scarica il pacchetto di rilascio di MySQL Community Server.
export RPM_FILE=mysql80-community-release-el7-4.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Verifica l'integrità del file del pacchetto di release.
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se trovi il successivo all'output.
mysql80-community-release-el7-4.noarch.rpm: OK
Aggiorna il gestore di pacchetti in modo da includere MySQL.
sudo rpm -Uvh ${RPM_FILE}
Installa MySQL.
sudo yum -y install mysql-community-server
Avvia il server MySQL.
sudo /usr/bin/systemctl start mysqld
Recupera la password root temporanea dai log del server
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Rocky Linux o RHEL 8
Queste istruzioni installano MySQL 8.
La versione 8 di Rocky Linux, CentOS Stream e RHEL contengono MariaDB anziché MySQL come parte del suo sistema di gestione dei pacchetti. Per installare MySQL, aggiorna prima il gestore di pacchetti.
Scarica il pacchetto di rilascio di MySQL Community Server.
export RPM_FILE=mysql80-community-release-el8-2.noarch.rpm cd /tmp curl -L --output ${RPM_FILE} \ https://dev.mysql.com/get/${RPM_FILE}
Verifica l'integrità del file del pacchetto di release.
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se trovi il successivo all'output.
mysql80-community-release-el8-2.noarch.rpm: OK
Aggiorna il gestore di pacchetti in modo da includere MySQL.
sudo rpm -iUvh ${RPM_FILE}
Installa MySQL. Durante l'installazione, disabilita AppStream in modo che l'installazione utilizzi il server della community.
sudo yum module disable -y mysql sudo yum install -y \ --disablerepo=appstream \ mysql-community-server
Avvia il server MySQL.
sudo /usr/bin/systemctl start mysqld
Recupera la password root temporanea dai log del server
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Migliora la sicurezza dell'installazione di MySQL
Per migliorare la sicurezza dell'installazione di MySQL, esegui il
Comando mysql_secure_installation
. Se non hai impostato una password durante
procedura di installazione, crea una password in questo passaggio. Per ulteriori informazioni
su questo comando, consulta la documentazione di MySQL per
mysql_secure_installation.
sudo mysql_secure_installation
Connettiti a MySQL
I seguenti passaggi descrivono come connetterti a MySQL da mysql-test
in esecuzione in un'istanza Compute Engine.
MySQL 8.0
Connettiti a MySQL utilizzando il client MySQL.
sudo mysql -u root -p
Quando ti connetti a MySQL, il prompt diventa
mysql>
.Puoi quindi eseguire i comandi MySQL. Ad esempio, il seguente comando mostra ai thread in esecuzione, inclusa la connessione attuale.
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)
Puoi utilizzare il comando seguente per generare un elenco di utenti.
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)
Quando hai finito di eseguire i comandi, utilizza il comando
exit
per uscire MySQL e poi utilizza di nuovoexit
per uscire di Compute Engine.mysql> exit
Bye
MySQL 5.7
Connettiti a MySQL utilizzando il client MySQL.
sudo mysql -u root -p
Quando ti connetti a MySQL, il prompt diventa
mysql>
.Puoi quindi eseguire i comandi MySQL. Ad esempio, il seguente comando mostra ai thread in esecuzione, inclusa la connessione attuale.
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)
Puoi utilizzare il comando seguente per generare un elenco di utenti.
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)
Quando hai finito di eseguire i comandi, utilizza il comando
exit
per uscire MySQL e poi utilizza di nuovoexit
per uscire di Compute Engine.mysql> exit
Bye
esegui la pulizia
Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettono di usare la quota e comportano addebiti. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione creato per il tutorial.
Per eliminare il progetto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Eliminazione di istanze
Per eliminare un'istanza di Compute Engine:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Passaggi successivi
Hai visto come installare il server MySQL su Compute Engine. Per vedere per applicazioni più complesse che utilizzano MySQL, sfoglia un'ampia varietà di stack di sviluppo su Cloud Marketplace che usano MySQL.
Se i tuoi requisiti includono disponibilità elevata e scalabilità, installazione di cluster MySQL su Compute Engine. Il cluster MySQL offre disponibilità e scalabilità elevate mediante il clustering "non condiviso" e il sharding automatico. Cloud Marketplace fornisce un'opzione click-to-deploy per Percona, una soluzione open source per il clustering di MySQL.
Un'altra soluzione open source per la scalabilità di MySQL è Vitess, che gestisce tutto il traffico dei database di YouTube dal 2011. Vites è ed è particolarmente adatta per le applicazioni eseguite in container. Per ulteriori informazioni utilizzando Vitess in un ambiente containerizzato, vedi Esecuzione di Vitess su Kubernetes.
Per ulteriori informazioni su MySQL, consulta documentazione ufficiale di MySQL.
Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Dai un'occhiata al nostro Centro architetture cloud.