Instale o MySQL no Compute Engine


Para instalar manualmente o MySQL numa instância do Compute Engine que criou, conclua os passos seguintes.

Para uma vista geral de várias opções de configuração do MySQL no Compute Engine, consulte o artigo MySQL no Compute Engine. Para saber que ofertas do Compute Engine são adequadas para o MySQL, consulte o artigo Configure o MySQL no Compute Engine.

Antes de começar

  • Use a Google Cloud consola para ativar a API Compute Engine.
  • Instale a CLI do Google Cloud
  • Configure o seu espaço de trabalho para tornar os comandos menos detalhados. Substitua os valores do seu projeto por PROJECT_ID, REGION e ZONE nos comandos seguintes. Para ver a lista completa de zonas, consulte o artigo Regiões e zonas disponíveis.

    gcloud config set project PROJECT_ID
    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE
    

Crie uma instância do Compute Engine e estabeleça uma ligação SSH

Crie uma instância do Compute Engine para o MySQL e estabeleça uma ligação SSH à instância recém-criada. O sistema operativo predefinido é o Debian versão 10. Se preferir usar um sistema operativo diferente para este tutorial, pode escolher entre as opções descritas na página imagens públicas na documentação do Compute Engine.

Consola

Crie a instância do Compute Engine

Para criar a instância do Compute Engine no Google Cloud console, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Instâncias de VM do Compute Engine.

    Aceda às instâncias de VM do Compute Engine.

  2. Selecione o projeto recém-criado e clique em Continuar.

  3. Clique em Criar instância (Nova instância se tiver instâncias existentes). Dê o nome mysql-test à instância.

  4. Selecione o nível de desempenho e dimensione o disco.

  5. Para especificar um sistema operativo diferente do valor predefinido, na secção Disco de arranque, clique em Alterar para configurar as propriedades do disco de arranque. No separador Imagens públicas, selecione um sistema operativo e, de seguida, clique em Guardar.

  6. Para agir em conformidade com as práticas recomendadas de segurança, crie a sua instância sem um endereço IP externo.

    Expanda Opções avançadas e, de seguida, Redes. Em Interfaces de rede, expanda a interface predefinição e, no menu Endereço IPv4 externo, selecione Nenhum.

  7. Clique em Criar.

Configure a tradução de endereços de rede

Para configurar e gerir a tradução de endereços de rede com o Cloud NAT, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Cloud NAT.

    Aceda ao Cloud NAT

  2. Clique em Começar ou Criar gateway de NAT da nuvem.

  3. Em Nome da gateway, introduza nat-simple-configuration.

  4. Para selecionar o Cloud Router, na secção Selecionar Cloud Router, faça o seguinte:

    1. Para Rede, selecione predefinição.
    2. Para Região, selecione a região que especificou para a sua VM.
    3. Para o Cloud Router, selecione Criar novo router.

      Na caixa de diálogo Criar um router apresentada, indique um Nome para o router, por exemplo, nat-router-simple-configuration, e clique em Criar.

  5. Clique em Configurações avançadas.

  6. Na secção Registo, selecione Tradução e erros. Esta definição configura o Cloud NAT para enviar todos os registos para o Cloud Logging.

  7. Clique em Criar.

Estabeleça uma ligação SSH à VM

Para estabelecer uma ligação SSH, faça o seguinte:

  1. Na página Instâncias de VM, encontre a nova instância de VM na lista.

  2. Na coluna Ligar dessa VM, clique em SSH. O terminal SSH é aberto numa janela do navegador.

gcloud

  1. Para criar uma instância do Compute Engine, use o comando gcloud compute instances create. Para especificar o sistema operativo, adicione o parâmetro --image-family seguido da família de imagens ou o parâmetro --image seguido do 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. Quando usar imagens públicas, o projeto de imagem tem de ser fornecido através do parâmetro --image-project.

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

    gcloud compute routers create nat-router-simple-configuration \
        --network=default
    
  3. Configure e faça a gestão da 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
    
  4. Ligue-se à instância através de ssh.

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

    A ligação SSH é feita através do encaminhamento TCP processado pelo Identity-Aware Proxy (IAP).

Instale o MySQL

Os passos seguintes descrevem como instalar o MySQL na sua instância do Compute Engine.

Debian 10 ou superior

Estas instruções instalam o MySQL 8 ou 5.7.

As versões 10 e posteriores do Debian contêm o MariaDB em vez do MySQL como parte do respetivo sistema de gestão de pacotes. O MariaDB mantém a compatibilidade com o protocolo MySQL, mas tem um conjunto de funcionalidades que evolui de forma independente. Para mais detalhes, consulte o artigo MariaDB versus MySQL.

Para instalar o MySQL, transfira o pacote de lançamento e instale-o manualmente com o comando dpkg.

  1. Instale a dependência wget.

    sudo apt-get install -y wget
    
  2. Transfira 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}
    
  3. Valide a integridade do ficheiro 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 ficheiro são validadas se vir o seguinte resultado:

    mysql-apt-config_0.8.20-1_all.deb: OK
    
  4. Depois de validar o ficheiro, adicione o pacote MySQL ao repositório de pacotes local.

    sudo dpkg -i ${DEB_FILE}
    

    É-lhe pedido que confirme as opções de instalação, incluindo a versão do MySQL.

  5. Com a opção de menu superior MySQL Server & Cluster selecionada, prima Return e, em seguida, use as teclas de seta para escolher uma versão do servidor.

    Este guia pressupõe que escolhe o MySQL 8.0 ou 5.7. Prima Return no teclado depois de selecionar a versão.

  6. Quando as opções selecionadas no menu de configuração estiverem do seu agrado, use as teclas de seta para selecionar Ok no menu e prima Return no teclado.

  7. Atualize a cache de pacotes.

    sudo apt-get update
    

    Se receber um erro GPG semelhante a The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, importe as chaves GPG em falta 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 em falta é 467B942D3A79BD29. Forneça este valor com a opção --recv-keys.

    Repita o comando para atualizar a cache de pacotes.

  8. Instale o MySQL. O processo de instalação inicia o serviço MySQL por si.

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

    É-lhe pedido que faculte alguns detalhes para a instalação, como a palavra-passe de raiz.

Debian 9

Estas instruções instalam o MySQL 8 ou 5.7.

Por predefinição, algumas versões do Debian, como o Debian 9, instalam o MariaDB como o servidor MySQL predefinido. O MariaDB foi concebido para ser amplamente compatível com o MySQL e pode ser invocado através dos mesmos comandos. Para ver detalhes sobre a forma como o MariaDB difere do MySQL padrão, consulte o artigo Mudar do MySQL para o MariaDB no Debian 9.

Para instalar o MySQL, siga estas instruções:

  1. Transfira 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}
    
  2. Valide a integridade do ficheiro 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 ficheiro são validadas se vir o seguinte resultado.

    mysql-apt-config_0.8.17-1_all.deb: OK
    
  3. Depois de validar o ficheiro, adicione o pacote MySQL ao repositório de pacotes local.

    sudo dpkg -i ${DEB_FILE}
    

    É-lhe pedido que confirme as opções de instalação, incluindo a versão do MySQL.

  4. Com a opção de menu superior MySQL Server & Cluster selecionada, prima Return e, em seguida, use as teclas de seta para escolher uma versão do servidor.

    Este guia pressupõe que escolhe o MySQL 8.0 ou 5.7. Prima Return no teclado depois de selecionar a versão.

  5. Quando as opções selecionadas no menu de configuração estiverem do seu agrado, use as teclas de seta para selecionar Ok no menu e prima Return no teclado.

  6. Atualize a cache de pacotes.

    sudo apt-get update
    

    Se receber um erro GPG semelhante a The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, importe as chaves GPG em falta 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 em falta é 467B942D3A79BD29. Forneça este valor com a opção --recv-keys.

    Repita o comando para atualizar a cache de pacotes.

  7. Instale o MySQL. O processo de instalação inicia o serviço MySQL por si.

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

Ubuntu

Para o Ubuntu 1804 e versões anteriores, estas instruções instalam o MySQL 5.7.
Para o Ubuntu 2004 e posterior, estas instruções instalam o MySQL 8.

  1. Atualize o gestor de pacotes apt-get.

    sudo apt-get update
    
  2. Instale o MySQL. O processo de instalação inicia o serviço MySQL por si.

    sudo apt-get -y install mysql-server
    
  3. Por predefinição, nas distribuições do Ubuntu, o MySQL autentica o utilizador root com o plug-in auth_socket. Execute esta consulta para validar esta configuração predefinida:

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

    O resultado mostra que o utilizador root que se liga a partir de localhost vai usar o plug-in auth_socket:

    +------+-----------------------+-------------+-----------+
    | user | authentication_string | plugin      | host      |
    +------+-----------------------+-------------+-----------+
    | root |                       | auth_socket | localhost |
    +------+-----------------------+-------------+-----------+
    
  4. Altere esta definição e altere a palavra-passe de raiz 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 palavra-passe de raiz:

    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 do RHEL contém o MariaDB em vez do MySQL como parte do respetivo sistema de gestão de pacotes. Para instalar o MySQL, tem de atualizar primeiro o gestor de pacotes.

  1. Transfira 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}
    
  2. Valide a integridade do ficheiro do pacote de lançamento.

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

    A autenticidade e a integridade do ficheiro são validadas se vir o seguinte resultado.

    mysql80-community-release-el7-4.noarch.rpm: OK
    
  3. Atualize o gestor de pacotes para incluir o MySQL.

    sudo rpm -Uvh ${RPM_FILE}
    
  4. Instale o MySQL.

    sudo yum -y install mysql-community-server
    
  5. Inicie o servidor MySQL.

    sudo /usr/bin/systemctl start mysqld
    
  6. Obtenha a palavra-passe de raiz temporária a partir dos registos 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 o MariaDB em vez do MySQL como parte do respetivo sistema de gestão de pacotes. Para instalar o MySQL, tem de atualizar primeiro o gestor de pacotes.

  1. Transfira 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}
    
  2. Valide a integridade do ficheiro 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 ficheiro são validadas se vir o seguinte resultado.

    mysql80-community-release-el8-2.noarch.rpm: OK
    
  3. Atualize o gestor de pacotes para incluir o MySQL.

    sudo rpm -iUvh ${RPM_FILE}
    
  4. Instale o MySQL. Durante a instalação, desative o repositório AppStream para que a instalação use o servidor da comunidade.

    sudo yum module disable -y mysql
    sudo yum install -y \
        --disablerepo=appstream \
      mysql-community-server
    
  5. Inicie o servidor MySQL.

    sudo /usr/bin/systemctl start mysqld
    
  6. Obtenha a palavra-passe de raiz temporária a partir dos registos 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 não definiu uma palavra-passe durante o processo de instalação, crie uma palavra-passe neste passo. Para mais informações acerca deste comando, consulte a documentação do MySQL para mysql_secure_installation.

sudo mysql_secure_installation

Ligue-se ao MySQL

Os passos seguintes descrevem como estabelecer ligação ao MySQL a partir da sua instância do mysql-test

MySQL 8.0

  1. Estabeleça ligação ao MySQL através do cliente MySQL.

    sudo mysql -u root -p
    

    Quando se liga ao MySQL, o comando muda para mysql>.

    Em seguida, pode executar comandos MySQL. Por exemplo, o seguinte comando mostra os threads em execução, incluindo a ligaçã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)

    Pode usar o seguinte comando para gerar uma lista de utilizadores.

    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. Quando terminar de executar comandos, use o comando exit para sair do cliente MySQL e, em seguida, use exit novamente para terminar sessão na instância do Compute Engine.

    mysql> exit
    Bye

MySQL 5.7

  1. Estabeleça ligação ao MySQL através do cliente MySQL.

    sudo mysql -u root -p
    

    Quando se liga ao MySQL, o comando muda para mysql>.

    Em seguida, pode executar comandos MySQL. Por exemplo, o seguinte comando mostra os threads em execução, incluindo a ligaçã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)

    Pode usar o seguinte comando para gerar uma lista de utilizadores.

    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. Quando terminar de executar comandos, use o comando exit para sair do cliente MySQL e, em seguida, use exit novamente para terminar sessão na instância do Compute Engine.

    mysql> exit
    Bye

O que se segue?

  • Para mais informações sobre o MySQL, consulte a documentação oficial do MySQL.
  • Explore a grande variedade de stacks de desenvolvimento no Cloud Marketplace que usam o MySQL.
  • Se os seus requisitos incluírem alta disponibilidade e escalabilidade, considere as seguintes opções:
    • Instale o MySQL Cluster no Compute Engine para ter alta disponibilidade e escalabilidade através de clustering sem partilha e sharding automático.
    • Clique para implementar o Percona, uma solução de código aberto para o clustering do MySQL, a partir do Cloud Marketplace.
    • Instale o Vitess, a solução de código aberto que tem servido todo o tráfego da base de dados do YouTube desde 2011. O Vitess é adequado para aplicações que são executadas em contentores. Para obter informações sobre a utilização do Vitess num ambiente em contentores, consulte o artigo Executar o Vitess no Kubernetes.