Per installare manualmente MySQL su un'istanza Compute Engine che hai creato, completa i seguenti passaggi.
Per una panoramica di diverse opzioni per configurare MySQL su Compute Engine, vedi MySQL su Compute Engine. Per scoprire quali offerte di Compute Engine sono appropriate per MySQL, vedi Configurare MySQL su Compute Engine.
Prima di iniziare
- Utilizza la console Google Cloud per attivare l'API Compute Engine.
- Installa Google Cloud CLI
Configura il tuo spazio di lavoro per rendere i comandi meno dettagliati. Sostituisci i valori del tuo progetto con PROJECT_ID, REGION e ZONE nei seguenti comandi. Per l'elenco completo delle zone, consulta Regioni e zone disponibili.
gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
Crea un'istanza Compute Engine e stabilisci una connessione SSH
Crea un'istanza Compute Engine per MySQL e stabilisci una connessione SSH all'istanza appena creata. Il sistema operativo predefinito è Debian versione 10. Se preferisci utilizzare un sistema operativo diverso per questo tutorial, puoi scegliere tra le opzioni descritte nella pagina Immagini pubbliche della documentazione di Compute Engine.
Console
Crea l'istanza Compute Engine
Per creare l'istanza Compute Engine in Google Cloud console, procedi nel seguente modo:
Nella console Google Cloud , vai alla pagina Istanze VM di Compute Engine.
Seleziona il progetto appena creato e fai clic su Continua.
Fai clic su Crea istanza (Nuova istanza se hai istanze esistenti). Assegna all'istanza il nome mysql-test.
Per specificare un sistema operativo diverso dal valore predefinito, nella sezione Disco di avvio, fai clic su Cambia per configurare le proprietà del disco di avvio. Nella scheda Immagini pubbliche, seleziona un sistema operativo e poi fai clic su Salva.
Per rispettare le best practice per la sicurezza, crea l'istanza senza un indirizzo IP esterno.
Espandi Opzioni avanzate e Networking. In Interfacce di rete, espandi l'interfaccia predefinita e, nel menu Indirizzo IPv4 esterno, seleziona Nessuno.
Fai clic su Crea.
Configurare Network Address Translation
Per configurare e gestire la Network Address Translation con Cloud NAT, procedi nel seguente modo:
Nella Google Cloud console, vai alla pagina Cloud NAT.
Fai clic su Inizia o Crea gateway Cloud NAT.
In Nome gateway, inserisci
nat-simple-configuration
.Per selezionare il router Cloud, nella sezione Seleziona router Cloud, svolgi le seguenti operazioni:
- In Rete, seleziona predefinita.
- Per Regione, seleziona la regione che hai specificato per la VM.
Per Router Cloud, seleziona Crea nuovo router.
Nella finestra di dialogo Crea un router visualizzata, fornisci un Nome per il router, ad esempio
nat-router-simple-configuration
, e fai clic su Crea.
Fai clic su Configurazioni avanzate.
Nella sezione Logging, seleziona Traduzione ed errori. Questa impostazione configura Cloud NAT in modo che invii tutti i log a Cloud Logging.
Fai clic su Crea.
Stabilisci una connessione SSH alla VM
Per stabilire una connessione SSH:
Nella pagina Istanze VM, individua la nuova istanza VM nell'elenco.
Nella colonna Connetti della VM, fai clic su SSH. Il terminale SSH si apre in una finestra del browser.
gcloud
Per creare un'istanza Compute Engine, utilizza il comando
gcloud compute instances create
. Per specificare il sistema operativo, aggiungi il parametro--image-family
seguito dalla famiglia di immagini o il parametro--image
seguito dal nome dell'immagine per una versione specifica dell'immagine. Ad esempio, per utilizzare l'immagine più recente della famiglia Debian 10, aggiungi--image-family debian-10
. Quando utilizzi immagini pubbliche, il progetto di immagini deve essere fornito utilizzando il parametro--image-project
.gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
Crea un router Cloud.
gcloud compute routers create nat-router-simple-configuration \ --network=default
Configura e gestisci la 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
La connessione SSH viene stabilita utilizzando l'inoltro TCP gestito da Identity-Aware Proxy (IAP).
Installare MySQL
I passaggi seguenti spiegano come installare MySQL sull'istanza Compute Engine.
Debian 10+
Queste istruzioni installano MySQL 8 o 5.7.
Le versioni 10 e successive di Debian contengono MariaDB anziché MySQL come parte del sistema di gestione dei pacchetti. MariaDB mantiene la compatibilità con il protocollo MySQL, ma ha un insieme di funzionalità in evoluzione indipendente. Per maggiori dettagli, consulta MariaDB e MySQL.
Per installare MySQL, scarica il pacchetto di rilascio 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 rilascio.
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se vedi il seguente output:
mysql-apt-config_0.8.20-1_all.deb: OK
Dopo aver verificato il file, aggiungi il pacchetto MySQL al repository dei pacchetti locale.
sudo dpkg -i ${DEB_FILE}
Ti viene chiesto di confermare le opzioni di installazione, inclusa la versione di MySQL.
Con l'opzione di menu MySQL Server & Cluster selezionata, premi Invio e poi utilizza i tasti freccia per scegliere una versione del server.
Questa guida prevede che tu scelga MySQL 8.0 o 5.7. Premi Invio sulla tastiera dopo aver selezionato la versione.
Quando le opzioni selezionate nel menu di configurazione ti soddisfano, utilizza 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 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, importa le chiavi GPG mancanti con un comando che segue questo pattern:
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.
sudo apt-get -y install mysql-community-server
Ti viene chiesto di fornire alcuni dettagli per l'installazione, come la password root.
Debian
Queste istruzioni installano MySQL 8 o 5.7.
Per impostazione predefinita, alcune versioni di Debian, come Debian 9, installano MariaDB come server MySQL predefinito. MariaDB è progettato per essere in gran parte compatibile con MySQL e può essere richiamato utilizzando gli stessi comandi. Per informazioni dettagliate sulle differenze tra MariaDB e MySQL standard, consulta Moving from MySQL to 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 rilascio.
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se vedi l'output seguente.
mysql-apt-config_0.8.17-1_all.deb: OK
Dopo aver verificato il file, aggiungi il pacchetto MySQL al repository di pacchetti locale.
sudo dpkg -i ${DEB_FILE}
Ti viene chiesto di confermare le opzioni di installazione, inclusa la versione di MySQL.
Con l'opzione di menu MySQL Server & Cluster selezionata, premi Invio e poi utilizza i tasti freccia per scegliere una versione del server.
Questa guida prevede che tu scelga MySQL 8.0 o 5.7. Premi Invio sulla tastiera dopo aver selezionato la versione.
Quando le opzioni selezionate nel menu di configurazione ti soddisfano, utilizza 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 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, importa le chiavi GPG mancanti con un comando che segue questo pattern:
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.
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.
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 la configurazione predefinita: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
utilizzerà il plug-inauth_socket
:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Modifica questa impostazione e cambia la password di root con una difficile 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.
Le versioni 7 di CentOS e RHEL contengono MariaDB anziché MySQL come parte del sistema di gestione pacchetti. Per installare MySQL, devi prima aggiornare 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 rilascio.
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se vedi l'output seguente.
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
Ottieni 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.
Le versioni 8 di Rocky Linux, CentOS Stream e RHEL contengono MariaDB anziché MySQL come parte del sistema di gestione dei pacchetti. Per installare MySQL, devi prima aggiornare 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 rilascio.
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
L'autenticità e l'integrità del file vengono verificate se vedi l'output seguente.
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 il repository 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
Ottieni 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
la procedura di installazione, creane una in questo passaggio. Per ulteriori informazioni
su questo comando, consulta la documentazione di MySQL per
mysql_secure_installation.
sudo mysql_secure_installation
Connettersi a MySQL
I passaggi seguenti spiegano come connettersi a MySQL dall'istanza mysql-test
.
MySQL 8.0
Connettiti a MySQL utilizzando il client MySQL.
sudo mysql -u root -p
Quando ti connetti a MySQL, il prompt cambia in
mysql>
.A questo punto puoi eseguire i comandi MySQL. Ad esempio, il seguente comando mostra i thread in esecuzione, inclusa la connessione corrente.
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 seguente comando 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)
Al termine dell'esecuzione dei comandi, utilizza il comando
exit
per uscire dal client MySQL, quindi utilizza di nuovoexit
per disconnetterti dall'istanza 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 cambia in
mysql>
.A questo punto puoi eseguire i comandi MySQL. Ad esempio, il seguente comando mostra i thread in esecuzione, inclusa la connessione corrente.
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 seguente comando 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)
Al termine dell'esecuzione dei comandi, utilizza il comando
exit
per uscire dal client MySQL, quindi utilizza di nuovoexit
per disconnetterti dall'istanza Compute Engine.mysql> exit
Bye
Passaggi successivi
- Per ulteriori informazioni su MySQL, consulta la documentazione ufficiale di MySQL.
- Esplora la vasta gamma di stack di sviluppo su Cloud Marketplace che utilizzano MySQL.
- Se i tuoi requisiti includono scalabilità e alta disponibilità, valuta le
seguenti opzioni:
- Installa MySQL Cluster su Compute Engine per alta disponibilità e scalabilità tramite clustering senza condivisione e partizionamento automatico.
- Fai clic per eseguire il deployment di Percona, una soluzione open source per il clustering MySQL, da Cloud Marketplace.
- Installa Vitess, la soluzione open source che gestisce tutto il traffico del database di YouTube dal 2011. Vitess è ideale per le applicazioni eseguite in container. Per informazioni sull'utilizzo di Vitess in un ambiente containerizzato, consulta Esecuzione di Vitess su Kubernetes.