Cómo configurar MySQL en Google Compute Engine

Tienes varias opciones para implementar MySQL como parte de tu proyecto de Google Cloud. Puedes usar Cloud SQL, Google Cloud Marketplace o instalar MySQL de forma manual en Compute Engine.

Cloud SQL ofrece MySQL como un servicio web. Puedes usar Cloud SQL para alojar tu base de datos MySQL en la nube de Google y permitir que Google Cloud se encargue de tareas administrativas como la replicación, la administración de parches y la administración de bases de datos.

Cloud Marketplace proporciona una interfaz simple de implementación en un clic que facilita la instalación de MySQL en una instancia de Compute Engine. Cloud Marketplace incluye una instalación independiente de MySQL y, también, varias pilas de desarrollo web que usan MySQL, incluidas las pilas LAMP, LEMP y los clústeres de Percona para MySQL.

Si prefieres instalar y personalizar MySQL de forma manual, puedes usar Compute Engine para crear una base de datos de MySQL en cuestión de minutos. En este documento, se ofrece orientación sobre qué opción elegir y se presenta el proceso de instalación manual de una base de datos de MySQL en Compute Engine.

Cómo elegir la opción de implementación de MySQL adecuada

Cloud SQL es una gran opción si deseas que Google Cloud se ocupe de las tareas de administración del servidor y la base de datos de backend. Por ejemplo, Cloud SQL proporciona copias de seguridad automatizadas y recuperación de un momento determinado. Además, tus datos se repiten en varias zonas para mayor disponibilidad y resiliencia.

Se recomienda instalar MySQL en Compute Engine si necesitas una función de MySQL que no es compatible con Cloud SQL. Por ejemplo, Cloud SQL no admite funciones definidas por el usuario ni el privilegio SUPER. Para obtener más información, consulta Preguntas frecuentes de SQL.

Si decides instalar MySQL en Compute Engine, puedes usar Cloud Marketplace para implementar una instalación de MySQL o puedes instalar MySQL de forma manual en una instancia de Compute Engine. Cloud Marketplace proporciona una forma conveniente de implementar MySQL como parte de pilas de desarrollo más grandes. Cloud Marketplace ofrece varias opciones para las instalaciones de MySQL, incluida una instalación independiente de MySQL, pilas LAMP, LEMP y Nginx, una instalación del clúster de Percona para MySQL y muchas otras opciones.

Si las ofertas de Cloud Marketplace no satisfacen tus necesidades, puedes instalar MySQL de forma manual en una instancia de Compute Engine. Te recomendamos, por ejemplo, implementar MySQL en una imagen personalizada que creaste o tener control total sobre el proceso de instalación.

Para instalar MySQL en una instancia de Compute Engine de forma manual, solo necesitas crear una instancia de Compute Engine y, luego, instalar MySQL directamente en la instancia. En el resto de este documento, se describe la instalación manual de MySQL en una instancia de Compute Engine.

Objetivos

  • Crear una instancia de Compute Engine
  • Instalar MySQL
  • Conectarse a MySQL

Requisitos previos

  1. Crea un proyecto nuevo en Google Cloud Console. Puedes usar un proyecto existente, pero crear uno nuevo simplifica la limpieza.

    Puedes completar todos los pasos de este documento mediante Google Cloud Console, pero si prefieres usar el herramienta de línea de comandos de gcloud, sigue estos pasos a fin de habilitar la API de Compute Engine y, luego, instalar el SDK de Cloud.

  2. Usa Google Cloud Console para habilitar la API de Compute Engine.

  3. Instala el SDK de Cloud.

  4. Configura tu lugar de trabajo para que los comandos sean menos detallados. Sustituye los valores de [PROJECT_ID] y [ZONE] de tu proyecto en los siguientes comandos. Para ver la lista completa de las zonas, consulta Regiones y zonas disponibles.

    gcloud config set project [PROJECT_ID]
    gcloud config set compute/zone [ZONE]
    

Cree una instancia de Compute Engine

Crea una instancia de Compute Engine para MySQL y establece una conexión SSH a la instancia recién creada. El sistema operativo predeterminado es Debian versión 9. Si prefieres usar un sistema operativo diferente para este instructivo, puedes elegir entre las opciones descritas en la página de imágenes públicas en la documentación de Compute Engine.

Console

Para crear una instancia de Compute Engine en Google Cloud Console, haz lo siguiente:

  1. Abre Google Cloud Console.

  2. Selecciona el proyecto que acabas de crear y haz clic en Continuar.

  3. Haz clic en Crear instancia (o Nueva instancia si ya tienes instancias). Asigna el nombre mysql-test a la instancia.

  4. Si quieres especificar un sistema operativo distinto del valor predeterminado, en la sección Disco de arranque, haz clic en Cambiar para configurar las propiedades del disco de arranque. En la pestaña Imágenes públicas, selecciona un sistema operativo y, luego, haz clic en Guardar.

  5. Haz clic en Crear.

Para establecer una conexión SSH:

  1. En la página Instancias de VM, encuentra tu nueva instancia de VM en la lista.

  2. En la columna Conectar, haz clic en SSH. La terminal SSH se abrirá en una ventana del navegador.

gcloud

  1. Para crear una instancia de Compute Engine, usa el comando gcloud compute instances create. Para usar un sistema operativo diferente, agrega el parámetro --image seguido del nombre de la imagen. Por ejemplo, para usar Debian 9, agrega --image debian-9.

    gcloud compute instances create mysql-test
    
  2. Conéctate a la instancia mediante ssh.

    gcloud compute ssh mysql-test
    

Instala MySQL

En los siguientes pasos, se describe cómo instalar MySQL en una instancia de Compute Engine.

Debian y Ubuntu

  1. Actualiza el administrador de paquetes apt-get.

    sudo apt-get update
    
  2. Instala MySQL. El proceso de instalación inicia el servicio de MySQL por ti.

    sudo apt-get -y install mysql-server
    

CentOS 6 y RHEL 6

  1. Instala MySQL.

    sudo yum -y install mysql-server
    
  2. Inicia el servidor de MySQL.

    sudo service mysqld start
    

CentOS 7 y RHEL 7

La versión 7 de CentOS y RHEL ahora contienen MariaDB en lugar de MySQL como parte de sus sistemas de administración de paquetes. Si quieres instalar MySQL en CentOS 7, primero debes actualizar el administrador de paquetes.

  1. Actualiza el administrador de paquetes para que incluya MySQL.

    sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
  2. Instala MySQL.

    sudo yum -y install mysql-community-server
    
  3. Inicia el servidor de MySQL.

    sudo /usr/bin/systemctl start mysqld
    

Mejora la seguridad en la instalación de MySQL

Para mejorar la seguridad de tu instalación de MySQL, ejecuta el comando mysql_secure_installation. Si no configuraste una contraseña durante el proceso de instalación, créala en este paso. Para obtener más información sobre este comando, consulta mysql_secure_installation en la documentación de MySQL.

sudo mysql_secure_installation

Conéctate a MySQL

En los siguientes pasos, se describe cómo conectarte a MySQL desde tu instancia mysql-test.

  1. Conéctate a MySQL mediante el cliente MySQL.

    sudo mysql -u root -p
    

    Cuando te conectas a MySQL, el mensaje cambia a:

    mysql>

    Entonces puedes ejecutar comandos de MySQL. Por ejemplo, el comando siguiente muestra los subprocesos en ejecución, incluso la conexión actual.

    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)

    Puedes usar el siguiente comando para generar una lista de usuarios.

    mysql> SELECT User, Host, Password FROM mysql.user;
    +------------------+------------+-------------------------------------------+
    | User             | Host       | Password                                  |
    +------------------+------------+-------------------------------------------+
    | root             | localhost  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | mysql-test | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | 127.0.0.1  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | ::1        | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | debian-sys-maint | localhost  | *AD7B08AF7691A552A57900F1A9D8AE26ED499117 |
    +------------------+------------+-------------------------------------------+
    5 rows in set (0.00 sec)
  2. Cuando termines de ejecutar comandos, usa el comando exit para salir del cliente MySQL y, luego, usa exit de nuevo a fin de salir de la instancia de Compute Engine.

    mysql> exit
    exit

Realiza una limpieza

Una vez que termines el instructivo de MySQL, puedes realizar una limpieza de los recursos que creaste en Google Cloud a fin de que no consuman tu cuota y no se te cobre por ellos en el futuro. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, sigue estos pasos:

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra instancias

Para borrar una instancia de Compute Engine, utiliza lo siguiente:

  1. En Cloud Console, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona tu instancia en la casilla de verificación de es la instancia que deseas borrar.
  3. Para borrar la instancia, haz clic en Más acciones, en Borrar y, luego, sigue las instrucciones.

¿Qué sigue?

Ya viste cómo instalar un servidor de MySQL en Compute Engine. Para obtener información sobre aplicaciones más complejas que usan MySQL, consulta la amplia variedad de pilas de desarrollo disponibles en Cloud Marketplace que usan MySQL.

Si tus requisitos incluyen disponibilidad y escalabilidad altas, considera instalar MySQL Cluster en Compute Engine. El clúster de MySQL proporciona alta disponibilidad y escalabilidad mediante agrupamiento en clústeres que no comparten nada y fragmentación automática. Cloud Marketplace proporciona una opción con implementación en un clic para Percona, una solución de código abierto que se puede aplicar al agrupamiento en clústeres de MySQL.

Otra solución de código abierto para la escalabilidad en MySQL es Vitess, que entrega todo el tráfico de base de datos de YouTube desde 2011. Vitess es ideal para aplicaciones que se ejecutan en contenedores. Para obtener más información acerca de cómo usar Vitess en un entorno en contenedores, consulta Ejecuta Vitess en Kubernetes.

Para obtener más información acerca de MySQL, consulta la documentación oficial de MySQL.

Explora arquitecturas, diagramas, instructivos y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.