Você tem várias opções para implantar o MySQL como parte do seu projeto do Google Cloud. Você pode usar o Cloud SQL, o Google Cloud Marketplace ou instalar manualmente o MySQL no Compute Engine.
O Cloud SQL oferece MySQL como um serviço da Web. Você pode usar o Cloud SQL para hospedar seu banco de dados MySQL na nuvem do Google e deixar Google Cloud lidar com tarefas administrativas como replicação, gerenciamento de patches e gerenciamento de banco de dados.
O Cloud Marketplace oferece uma interface simples, clique para implantar, que facilita a instalação do MySQL em uma instância do Compute Engine. O Cloud Marketplace inclui não apenas uma instalação autônoma do MySQL, mas também várias pilhas de desenvolvimento web que usam MySQL, incluindo pilhas LAMP, pilhas LEMP e clusters Percona MySQL.
Se preferir instalar e personalizar manualmente o MySQL, você pode usar o Compute Engine para criar um banco de dados MySQL em questão de minutos. Este documento fornece orientações sobre qual opção escolher e explica a instalação manual de um banco de dados MySQL no Compute Engine.
Como escolher a opção certa de implantação do MySQL
O Cloud SQL é uma ótima opção se você deseja a comodidade de terGoogle Cloud cuide do banco de dados back-end e das tarefas de administração do servidor. Por exemplo, o Cloud SQL fornece backups automatizados e recuperação pontual. Além disso, seus dados são replicados em diversas zonas para maior disponibilidade e resiliência.
Talvez você prefira instalar o MySQL no Compute Engine se precisar de um recurso do MySQL que não seja compatível com o Cloud SQL. Por exemplo, o Cloud SQL não é compatível com funções definidas pelo usuário nem com o privilégio SUPER. Para mais informações, consulte as Perguntas frequentes sobre o Cloud SQL .
Se você decidir instalar o MySQL no Compute Engine, poderá usar o Cloud Marketplace para implantar uma instalação do MySQL ou instalar manualmente o MySQL em uma instância do Compute Engine. O Cloud Marketplace oferece uma maneira conveniente de implantar o MySQL como parte de pilhas de desenvolvimento maiores. O Cloud Marketplace oferece várias opções para instalações MySQL, incluindo uma instalação autônoma do MySQL, pilhas LAMP, pilhas LEMP, pilhas Nginx, uma instalação Percona MySQL Cluster e várias outras opções.
Se as ofertas do Cloud Marketplace não atenderem às suas necessidades, você poderá instalar manualmente o MySQL em uma instância do Compute Engine. Você pode, por exemplo, querer implantar o MySQL em uma imagem customizada que você criou ou pode querer ter controle completo do processo de instalação.
Para instalar manualmente o MySQL em uma instância do Compute Engine, basta criar uma instância do Compute Engine e instalar o MySQL diretamente na instância.
Para obter mais informações sobre cada opção, consulte os seguintes recursos:
- Para o Cloud SQL, consulte a documentação do Cloud SQL para MySQL .
Para o Cloud Marketplace, consulte as opções para instalações do MySQL no console do Google Cloud:
Para instalação manual do MySQL em uma instância do Compute Engine, consulte o restante deste documento.
Objetivos
- Criar uma instância do Compute Engine
- Instale MySQL
- Conecte-se ao MySQL
Pré-requisitos
Crie um novo projeto no console do Google Cloud . Você pode usar um projeto existente, mas criar um novo projeto facilita a limpeza.
Você pode concluir todas as etapas deste documento usando o console do Google Cloud, mas se preferir usar a CLI gcloud, siga estas etapas para ativar a API Compute Engine e instalar a CLI do Google Cloud.
Use o console do Google Cloud para ativar a API Compute Engine .
Instale a CLI gcloud .
Configure seu espaço de trabalho para tornar os comandos menos detalhados. Substitua os valores do seu projeto por
PROJECT_ID
,REGION
eZONE
nos comandos a seguir. Para obter a lista completa de zonas, consulte Regiões e zonas disponíveis .gcloud config set project PROJECT_ID gcloud config set compute/region REGION gcloud config set compute/zone ZONE
Criar uma instância do Compute Engine e estabelecer uma conexão SSH
Crie uma instância do Compute Engine para MySQL e estabeleça uma conexão SSH com a instância recém-criada. O sistema operacional padrão é o Debian versão 10. Se preferir usar um sistema operacional diferente para este tutorial, escolha uma das opções descritas na página de imagens públicas na documentação do Compute Engine.
Console
Criar a instância do Compute Engine
Para criar a instância do Compute Engine no console do Google Cloud , faça o seguinte:
No console do Google Cloud, acesse a página de instâncias de VM do Compute Engine .
Selecione seu projeto recém-criado e clique em Continuar .
Clique em Criar instância ( Nova instância se você tiver instâncias existentes). Nomeie a instância como mysql-test .
Para especificar um sistema operacional diferente do valor padrão, na seção Disco de inicialização , clique em Alterar para configurar as propriedades do disco de inicialização. Na guia Imagens públicas , selecione um sistema operacional e clique em Salvar .
Para estar em conformidade com as práticas recomendadas de segurança, crie sua instância sem um endereço IP externo.
Expanda Opções avançadas e expanda Rede . Em Interfaces de rede , expanda a interface padrão e, no menu Endereço IPv4 externo , selecione Nenhum .
Clique em Criar .
Configurar a tradução de endereços de rede
Para configurar e gerenciar a tradução de endereços de rede com o Cloud NAT, faça o seguinte:
No console do Google Cloud, acesse a página Cloud NAT .
Clique em Começar ou Criar gateway Cloud NAT .
Para Nome do gateway , insira
nat-simple-configuration
.Para selecionar o Cloud Router, na seção Selecionar Cloud Router , faça o seguinte:
- Para Rede , selecione padrão .
- Em Region , selecione a região que você especificou para sua VM.
Para Cloud Router , selecione Criar novo roteador .
Na caixa de diálogo Criar um roteador exibida, forneça um Nome para o roteador — por exemplo,
nat-router-simple-configuration
— e clique em Criar .
Clique em Configurações avançadas .
Na seção Registro , selecione Tradução e erros . Esta configuração configura o Cloud NAT para enviar todos os registros para o Cloud Logging.
Clique em Criar .
Estabeleça uma conexão SSH com a VM
Para estabelecer uma conexão SSH, faça o seguinte:
Na página Instâncias de VM , encontre sua nova instância de VM na lista.
Na coluna Conectar dessa VM, clique em SSH . O terminal SSH é aberto em uma janela do navegador.
gcloud
Para criar uma instância do Compute Engine, use o comando
gcloud compute instances create
. Para especificar o sistema operacional, adicione o parâmetro--image-family
seguido pela família da imagem ou o parâmetro--image
seguido pelo nome da imagem para uma versão de imagem específica. Por exemplo, para usar a imagem mais recente da família Debian 10, adicione--image-family debian-10
. Ao usar imagens públicas, o projeto da imagem deve ser fornecido usando o parâmetro--image-project
.gcloud compute instances create \ --image-family debian-10 \ --image-project debian-cloud \ --no-address \ mysql-test
Crie um roteador em nuvem.
gcloud compute routers create nat-router-simple-configuration \ --network=default
Configure e gerencie a tradução de endereços de rede com o 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
Conecte-se à instância usando
ssh
.gcloud compute ssh \ --tunnel-through-iap \ mysql-test
A conexão SSH é feita usando encaminhamento TCP gerenciado pelo Identity-Aware Proxy (IAP) .
Instale MySQL
As etapas a seguir descrevem como instalar o MySQL na instância do Compute Engine.
Debian 10+
Estas instruções instalam o MySQL 8 ou 5.7.
As versões 10 e posteriores do Debian contêm MariaDB em vez de MySQL como parte de seu sistema de gerenciamento de pacotes. MariaDB mantém compatibilidade com o protocolo MySQL, mas possui um conjunto de recursos que evolui de forma independente. Para obter mais detalhes, consulte MariaDB vs. MySQL .
Para instalar o MySQL, baixe o pacote de lançamento e instale manualmente usando o comando dpkg
.
Instale a dependência
wget
.sudo apt-get install -y wget
Baixe o pacote de lançamento do 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}
Verifique a integridade do arquivo do pacote de lançamento.
cat > ${DEB_FILE}.md5 << EOL 799bb0aefb93d30564fa47fc5d089aeb ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
A autenticidade e a integridade do arquivo serão verificadas se você vir a seguinte saída.
mysql-apt-config_0.8.20-1_all.deb: OK
Depois de verificar o arquivo, adicione o pacote MySQL ao repositório de pacotes local.
sudo dpkg -i ${DEB_FILE}
Você será solicitado a confirmar as opções de instalação, incluindo a versão do MySQL.
Com a opção de menu superior MySQL Server & Cluster selecionada, pressione Return e use as teclas de seta para escolher uma versão do servidor.
Este guia espera que você escolha MySQL 8.0 ou 5.7. Pressione Return no teclado depois de selecionar a versão.
Quando estiver satisfeito com as opções selecionadas no menu de configuração, use as teclas de seta para selecionar
Ok
no menu e pressione Return no teclado.Atualize o cache do pacote.
sudo apt-get update
Se você receber um erro GPG semelhante a As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 467B942D3A79BD29 , importe as chaves GPG ausentes com um comando que siga este padrão:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Na mensagem de erro demonstrativa, a chave pública ausente é
467B942D3A79BD29
; forneça esse valor com a opção--recv-keys
.Repita o comando para atualizar o cache do pacote.
Instale o MySQL. O processo de instalação inicia o serviço MySQL para você.
sudo apt-get -y install mysql-community-server
Você será solicitado a fornecer alguns detalhes para a instalação, como a senha root.
Debian 9
Estas instruções instalam o MySQL 8 ou 5.7.
Por padrão, algumas versões do Debian, como o Debian 9, instalam o MariaDB como servidor MySQL padrão. MariaDB foi projetado para ser amplamente compatível com MySQL e pode ser invocado usando os mesmos comandos. Para obter detalhes sobre como o MariaDB difere do MySQL padrão, consulte Movendo do MySQL para o MariaDB no Debian 9 .
Para instalar o MySQL, siga estas instruções:
Baixe o pacote de lançamento do 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}
Verifique a integridade do arquivo do pacote de lançamento.
cat > ${DEB_FILE}.md5 << EOL 9e393c991311ead61dcc8313aab8e230 ${DEB_FILE} EOL md5sum --check ${DEB_FILE}.md5
A autenticidade e a integridade do arquivo serão verificadas se você vir a seguinte saída.
mysql-apt-config_0.8.17-1_all.deb: OK
Depois de verificar o arquivo, adicione o pacote MySQL ao repositório de pacotes local.
sudo dpkg -i ${DEB_FILE}
Você será solicitado a confirmar as opções de instalação, incluindo a versão do MySQL.
Com a opção de menu superior MySQL Server & Cluster selecionada, pressione Return e use as teclas de seta para escolher uma versão do servidor.
Este guia espera que você escolha MySQL 8.0 ou 5.7. Pressione Return no teclado depois de selecionar a versão.
Quando estiver satisfeito com as opções selecionadas no menu de configuração, use as teclas de seta para selecionar
Ok
no menu e pressione Return no teclado.Atualize o cache do pacote.
sudo apt-get update
Se você receber um erro GPG semelhante a As seguintes assinaturas não puderam ser verificadas porque a chave pública não está disponível: NO_PUBKEY 467B942D3A79BD29 , importe as chaves GPG ausentes com um comando que siga este padrão:
sudo apt-key adv \ --keyserver keyserver.ubuntu.com \ --recv-keys 467B942D3A79BD29
Na mensagem de erro demonstrativa, a chave pública ausente é
467B942D3A79BD29
; forneça esse valor com a opção--recv-keys
.Repita o comando para atualizar o cache do pacote.
Instale o MySQL. O processo de instalação inicia o serviço MySQL para você.
sudo apt-get -y install mysql-community-server
Ubuntu
Para Ubuntu 1804 e anteriores, estas instruções instalam o MySQL 5.7 .
Para Ubuntu 2004 e posterior, estas instruções instalam o MySQL 8 .
Atualize o gerenciador de pacotes
apt-get
.sudo apt-get update
Instale o MySQL. O processo de instalação inicia o serviço MySQL para você.
sudo apt-get -y install mysql-server
Por padrão nas distribuições Ubuntu, o mysql autentica o usuário
root
com o pluginauth_socket
. Execute esta consulta para verificar esta configuração padrão:echo "SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user='root' ;" \ | sudo mysql -t -u root
A saída mostra que o usuário
root
conectado a partir dolocalhost
usará o pluginauth_socket
:+------+-----------------------+-------------+-----------+ | user | authentication_string | plugin | host | +------+-----------------------+-------------+-----------+ | root | | auth_socket | localhost | +------+-----------------------+-------------+-----------+
Altere esta configuração e altere a senha root para uma que seja difícil de adivinhar:
export PASSWORD=`uuidgen`; echo "Root password is : $PASSWORD" echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD'" \ | sudo mysql -u root
A saída contém a nova senha root:
Root password is : 25fe2177-778a-414f-b80e-5fb8c8671de3
CentOS ou RHEL 7
Estas instruções instalam o MySQL 8.
A versão 7 do CentOS e RHEL contém MariaDB em vez de MySQL como parte de seu sistema de gerenciamento de pacotes. Para instalar o MySQL, você deve primeiro atualizar o gerenciador de pacotes.
Baixe o pacote de lançamento do 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}
Verifique a integridade do arquivo do pacote de lançamento.
cat > ${RPM_FILE}.md5 << EOL 8b55d5fc443660fab90f9dc328a4d9ad ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
A autenticidade e integridade do arquivo serão verificadas se você vir a seguinte saída.
mysql80-community-release-el7-4.noarch.rpm: OK
Atualize o gerenciador de pacotes para incluir o MySQL.
sudo rpm -Uvh ${RPM_FILE}
Instale o MySQL.
sudo yum -y install mysql-community-server
Inicie o servidor MySQL.
sudo /usr/bin/systemctl start mysqld
Obtenha a senha root temporária dos logs do servidor
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Rocky Linux ou RHEL 8
Estas instruções instalam o MySQL 8.
A versão 8 do Rocky Linux, CentOS Stream e RHEL contém MariaDB em vez de MySQL como parte de seu sistema de gerenciamento de pacotes. Para instalar o MySQL, você deve primeiro atualizar o gerenciador de pacotes.
Baixe o pacote de lançamento do 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}
Verifique a integridade do arquivo do pacote de lançamento.
cat > ${RPM_FILE}.md5 << EOL 0ba3feb1c9ee35d30e5ae683accaf54b ${RPM_FILE} EOL md5sum --check ${RPM_FILE}.md5
A autenticidade e a integridade do arquivo serão verificadas se você vir a seguinte saída.
mysql80-community-release-el8-2.noarch.rpm: OK
Atualize o gerenciador de pacotes para incluir o MySQL.
sudo rpm -iUvh ${RPM_FILE}
Instale o MySQL. Durante a instalação, desative o repositório AppStream, para que a instalação utilize o servidor da comunidade.
sudo yum module disable -y mysql sudo yum install -y \ --disablerepo=appstream \ mysql-community-server
Inicie o servidor MySQL.
sudo /usr/bin/systemctl start mysqld
Obtenha a senha root temporária dos logs do servidor
sudo cat /var/log/mysqld.log | grep -i 'temporary password'
Melhore a segurança da instalação do MySQL
Para melhorar a segurança da sua instalação do MySQL, execute o comando mysql_secure_installation
. Se você não definiu uma senha durante o processo de instalação, crie uma senha nesta etapa. Para obter mais informações sobre este comando, consulte a documentação do MySQL para mysql_secure_installation .
sudo mysql_secure_installation
Conecte-se ao MySQL
As etapas a seguir descrevem como conectar-se ao MySQL a partir de sua instância mysql-test
.
MySQL 8.0
Conecte-se ao MySQL usando o cliente MySQL.
sudo mysql -u root -p
Quando você se conecta ao MySQL, o prompt muda para
mysql>
.Você pode então executar comandos MySQL. Por exemplo, o comando a seguir mostra os threads em execução, incluindo a conexão atual.
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)
Você pode usar o seguinte comando para gerar uma lista de usuários.
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 terminar de executar os comandos, use o comando
exit
para sair do cliente MySQL e, em seguida, useexit
novamente para sair da instância do Compute Engine.mysql> exit
Bye
MySQL 5.7
Conecte-se ao MySQL usando o cliente MySQL.
sudo mysql -u root -p
Quando você se conecta ao MySQL, o prompt muda para
mysql>
.Você pode então executar comandos MySQL. Por exemplo, o comando a seguir mostra os threads em execução, incluindo a conexão atual.
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)
Você pode usar o seguinte comando para gerar uma lista de usuários.
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 terminar de executar os comandos, use o comando
exit
para sair do cliente MySQL e, em seguida, useexit
novamente para sair da instância do Compute Engine.mysql> exit
Bye
Limpando
Depois de concluir o tutorial, você poderá limpar os recursos criados para que eles parem de usar a cota e de incorrer em cobranças. As seções a seguir descrevem como excluir ou desativar esses recursos.
Excluindo o projeto
A maneira mais fácil de eliminar o faturamento é excluir o projeto que você criou para o tutorial.
Para excluir o projeto:
- 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.
Excluindo instâncias
Para excluir uma instância do 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.
O que vem a seguir
Agora você viu como instalar o servidor MySQL no Compute Engine. Para ver aplicativos mais complexos que usam MySQL, navegue pela grande variedade de pilhas de desenvolvimento no Cloud Marketplace que usam MySQL.
Se seus requisitos incluem alta disponibilidade e escalabilidade, considere instalar o MySQL Cluster no Compute Engine. MySQL Cluster fornece alta disponibilidade e escalabilidade por meio de clustering sem compartilhamento e fragmentação automática. O Cloud Marketplace oferece uma opção clique para implantar para Percona , uma solução de código aberto para clustering MySQL.
Outra solução de código aberto para escalabilidade do MySQL é o Vitess , que atende todo o tráfego de banco de dados do YouTube desde 2011. O Vitess é adequado para aplicativos executados em contêineres. Para obter mais informações sobre como usar o Vitess em um ambiente em contêiner, consulte Executando o Vitess no Kubernetes .
Para obter mais informações sobre o MySQL, consulte a documentação oficial do MySQL .
Explore arquiteturas de referência, diagramas e práticas recomendadas sobre o Google Cloud. Dê uma olhada em nosso Centro de Arquitetura de Nuvem .