Cómo Instalar MySQL en CentOS 7: Guía Paso a Paso

MySQL es uno de los sistemas de administración de bases de datos más utilizados para sitios web y aplicaciones de servidor. Es una herramienta esencial que todo webmaster debería aprender. En este tutorial en particular, explicaremos cómo instalar MySQL en CentOS 7 a través de una conexión SSH.

Descargar eBook: Acelera Tu Sitio Web

Cómo instalar MySQL en un servidor CentOS 7

Hay tres pasos necesarios que debes llevar a cabo al instalar MySQL: descargar el repositorio de MySQL, instalarlo y verificar su estado. Repasaremos cada paso con mayor detalle a continuación.

1. Descargar y preparar el repositorio MySQL

Antes de comenzar a aprender cómo instalar MySQL en CentOS 7, asegúrate de que tu VPS o servidor dedicado se esté ejecutando en CentOS 7 y que tengas acceso root. Puedes aprender cómo conectarte a tu servidor a través de SSH siguiendo nuestro tutorial.

  1. Necesitarás actualizar el sistema escribiendo el siguiente comando:
    sudo yum update
  2. Una vez actualizado el sistema, es hora de descargar los repositorios de MySQL. También puedes ver otras versiones del repositorio aquí.
    sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  3. Al final de la descarga, deberías ver un mensaje de confirmación de que se guardó el archivo .rpm.
    Descargando MySQL 8 en CentOS 7
  4. Ahora, necesitas preparar el repositorio para que luego puedas instalar paquetes MySQL desde él. Simplemente ingresa:
    sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
  5. Una vez que el resultado indique que la actualización y la instalación están completas, podrás instalar MySQL.

2. Instalar MySQL

  1. Usa el siguiente comando yum install para instalar MySQL:
    sudo yum install mysql-server
  2. El script retornará una lista de paquetes y te pedirá confirmación para descargarlos e instalarlos. Escribe y y presiona ENTER para cada una de las solicitudes.
    Instale MySQL en CentOS 7.
  3. Deberás hacer esto varias veces, pero eventualmente verás el mensaje Complete! al finalizar la instalación, esto significa que has instalado correctamente MySQL en tu servidor.

3. Iniciar MySQL y comprobar su estado

  1. Una vez que tengas MySQL listo en CentOS 7, no se iniciará automáticamente inmediatamente después de la instalación. Por lo tanto, debes iniciarlo manualmente mediante el siguiente comando:
    sudo systemctl start mysqld
  2. No obtendrás respuesta una vez que MySQL se inicie, así que para verificar si está funcionando correctamente, usa el siguiente comando:
    sudo systemctl status mysqld
  3. Aparecerá la información sobre el proceso de MySQL:
    Verificación del estado después de la instalación de MySQL en Linux CentOS.

Si ves que MySQL está activo y ejecutándose como en la captura de pantalla anterior, has instalado e iniciado correctamente MySQL en tu servidor.

¿Cómo configurar MySQL?

Ahora que ya está todo configurado, te mostraremos algunos comandos y ajustes útiles que debes conocer cuando trabajes con MySQL.

Cambiar la contraseña del usuario root de MySQL

Al instalar MySQL en CentOS 7, se genera una contraseña root temporal. Ejecuta el siguiente comando para verla:

sudo grep 'password' /var/log/mysqld.log

Para cambiarla, sigue estos pasos:

  1. En primer lugar, ejecuta el siguiente comando:
    sudo mysql_secure_installation
  2. Ingresa la contraseña temporal y aparecerá el siguiente mensaje:
    The existing password for the user account root has expired. Please set a new password.
    New password:
    Re-enter new password:
  3. Ahora escribe una nueva contraseña segura.

CONSEJO PROFESIONAL: Una contraseña segura tiene entre 8 y 12 caracteres e incluye números, caracteres especiales, mayúsculas y minúsculas.

  • Sigue las instrucciones en pantalla y presiona y para finalizar la configuración. Has cambiado correctamente la contraseña del usuario root.
  • Comprobar la versión actual de MySQL

    Una vez que hayas instalado MySQL en CentOS 7, puedes probar si todo se configuró correctamente al verificar su versión. Escribe el siguiente comando:

    mysql -u root -p

    Ingresa la contraseña de root que has creado y la respuesta será la siguiente:

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 22
    Server version: 8.0.20
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    Restablecer la contraseña root de MySQL

    Si deseas restablecer yu contraseña, el proceso es bastante sencillo. Sigue los pasos a continuación para cambiar tu contraseña root de MySQL:

    1. Detén el servidor MySQL con este comando:
      sudo systemctl stop mysqld
    2. Reinicia MySQL en modo seguro o sin una contraseña escribiendo:
      sudo mysqld_safe --skip-grant-tables
    3. Presiona ENTER si el servidor MySQL se ha iniciado pero parece estar bloqueado.
    4. Usa el siguiente comando para volver a conectarte a MySQL como root:
      mysql -uroot
    5. Para cambiar la contraseña root, usa los siguientes comandos:
      USE MYSQL;
      UPDATE USER SET PASSWORD=PASSWORD(“newpassword”) WHERE USER=’root’;
      FLUSH PRIVILEGES;
      EXIT
    6. Reemplaza newpassword con tu propia contraseña segura.
    7. Finalmente, reinicia MySQL usando:
      sudo systemctl start mysqld
    8. Ahora puedes iniciar sesión en MySQL con tu nueva contraseña.

    Creación de una nueva base de datos de usuario MySQL

    Como usuario root en MySQL, tienes acceso completo a todas las bases de datos.

    Sin embargo, si trabajas con un equipo, hay casos en los que es posible que debas aplicar algunas restricciones. Deberías crear una nueva base de datos o crear usuarios con permisos personalizados.

    A continuación, te indicamos cómo solucionar rápidamente este problema:

    1. Utiliza el siguiente comando para crear una nueva base de datos:
      CREATE DATABASE newdb
    2. Cambie newdb por el nombre de la base de datos.
    3. Crea un nuevo usuario escribiendo la siguiente línea:
      CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'
    4. Cambia las variables username y password para crear tu nuevo usuario.
    5. Si deseas eliminar a un determinado usuario, usa el comando:
      DROP USER ‘username’@‘localhost’

    Administrar permisos de usuario de MySQL

    Otorga al nuevo usuario acceso a una base de datos escribiendo:

    GRANT ALL PRIVILEGES ON newdb.* TO 'username'@'localhost'

    También puedes otorgar privilegios individualmente, que incluyen:

    • SELECT: los usuarios pueden leer la base de datos mediante el comando select
    • CREATE: pueden generar nuevas tablas
    • DROP: permite a los usuarios eliminar tablas
    • DELETE: los usuarios pueden eliminar filas de las tablas
    • INSERT: permite a los usuarios agregar filas en tablas
    • UPDATE: los usuarios pueden actualizar las filas
    • GRANT OPTION: pueden otorgar o eliminar los privilegios de otros usuarios

    Por ejemplo, para otorgar el privilegio CREATE, debes escribir:

    GRANT CREATE ON newdb.* TO 'username'@'localhost'

    Por otro lado, si deseas eliminar el acceso de alguien, usa lo siguiente:

    REVOKE permission_type ON newdb.* TO 'username'@'localhost'

    También puedes verificar qué privilegios actuales tiene un usuario:

    SHOW GRANTS username

    Finalmente, una vez que hayas terminado de administrar a tus usuarios, es una buena idea restablecer todos los privilegios usando este comando para que tus cambios surtan efecto:

    FLUSH PRIVILEGES

    Otros comandos útiles de MySQL

    MySQL también tiene una lista de otros comandos útiles. Simplemente ingresa \h o help para ver la lista que se muestra a continuación:

    List of all MySQL commands:
    Note that all text commands must be first on line and end with ';'
    ?         (\?) Synonym for `help'.
    clear     (\c) Clear command.
    connect   (\r) Reconnect to the server. Optional arguments are db and host.
    delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
    edit      (\e) Edit command with $EDITOR.
    ego       (\G) Send command to mysql server, display result vertically.
    exit      (\q) Exit mysql. Same as quit.
    go        (\g) Send command to mysql server.
    help      (\h) Display this help.
    nopager   (\n) Disable pager, print to stdout.
    notee     (\t) Don't write into outfile.
    pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
    print     (\p) Print current command.
    prompt    (\R) Change your mysql prompt.
    quit      (\q) Quit mysql.
    rehash    (\#) Rebuild completion hash.
    source    (\.) Execute an SQL script file. Takes a file name as an argument.
    status    (\s) Get status information from the server.
    system    (\!) Execute a system shell command.
    tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
    use       (\u) Use another database. Takes database name as argument.
    charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
    warnings  (\W) Show warnings after every statement.
    nowarning (\w) Don't show warnings after every statement.
    
    For server side help, type 'help contents'
    mysql>
    

    Lecturas adicionales

    Conclusión

    Has aprendido a instalar MySQL en un servidor CentOS 7. Al instalar MySQL, puedes almacenar tus bases de datos y administrarlas de manera eficiente en tu servidor.

    Asegúrate de consultar nuestros tutoriales de VPS y deja un comentario a continuación si tienes alguna pregunta.

    Author
    El autor

    Gustavo B.

    Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.