sql >> Base de Datos >  >> RDS >> Mysql

Instalación de MySQL en CentOS 7

MySQL es un popular sistema de administración de bases de datos utilizado para aplicaciones web y de servidor. Sin embargo, MySQL ya no está en los repositorios de CentOS y MariaDB se ha convertido en el sistema de base de datos predeterminado que se ofrece. MariaDB se considera un reemplazo directo para MySQL y sería suficiente si solo necesita un sistema de base de datos en general. Consulte nuestra guía de MariaDB en CentOS 7 para obtener instrucciones de instalación.

Si, no obstante, prefiere MySQL, esta guía le explicará cómo instalarlo, configurarlo y administrarlo en un Linode con CentOS 7.

Las bases de datos MySQL grandes pueden requerir una cantidad considerable de memoria. Por esta razón, recomendamos usar un Linodo de memoria alta para tales configuraciones.

Nota Esta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados tienen el prefijo sudo . Si no está familiarizado con sudo comando, puede consultar nuestra guía de Usuarios y Grupos.

Antes de comenzar

  1. Asegúrese de haber seguido las guías de Introducción y Protección de su servidor, y de que el nombre de host de Linode esté configurado.

    Para verificar su nombre de host, ejecute:

    hostname
    hostname -f
    

    El primer comando debe mostrar su nombre de host abreviado y el segundo debe mostrar su nombre de dominio completo (FQDN).

  2. Actualice su sistema:

    sudo yum update
    
  3. Necesitará wget para completar esta guía. Se puede instalar de la siguiente manera:

    yum install wget
    

Instalar MySQL

MySQL debe instalarse desde el repositorio de la comunidad.

  1. Descargue y agregue el repositorio, luego actualice.

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    
  2. Instale MySQL como de costumbre e inicie el servicio. Durante la instalación, se le preguntará si desea aceptar los resultados de la verificación GPG del archivo .rpm. Si no se produce ningún error o discrepancia, ingrese y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL se vinculará a localhost (127.0.0.1) de forma predeterminada. Consulte nuestra guía de acceso remoto de MySQL para obtener información sobre cómo conectarse a sus bases de datos mediante SSH.

Nota No se recomienda permitir el acceso sin restricciones a MySQL en una IP pública, pero puede cambiar la dirección en la que escucha modificando bind-address parámetro en /etc/my.cnf . Si decide vincular MySQL a su IP pública, debe implementar reglas de firewall que solo permitan conexiones desde direcciones IP específicas.

Servidor MySQL reforzado

  1. Ejecute mysql_secure_installation secuencia de comandos para solucionar varios problemas de seguridad en una instalación predeterminada de MySQL.

     sudo mysql_secure_installation
    

Se le dará la opción de cambiar la contraseña raíz de MySQL, eliminar las cuentas de usuario anónimo, deshabilitar los inicios de sesión de raíz fuera de localhost y eliminar las bases de datos de prueba. Se recomienda que responda yes a estas opciones. Puede leer más sobre el script en el Manual de referencia de MySQL.

Nota

Si se instaló MySQL 5.7, necesitará la contraseña temporal que se creó durante la instalación. Esta contraseña está anotada en el /var/log/mysql.log y se puede encontrar rápidamente usando el siguiente comando.

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

Usando MySQL

La herramienta estándar para interactuar con MySQL es mysql cliente que se instala con el mysql-server paquete. El cliente MySQL se utiliza a través de una terminal.

Inicio de sesión raíz

  1. Para iniciar sesión en MySQL como usuario root:

    mysql -u root -p
    
  2. Cuando se le solicite, ingrese la contraseña raíz que asignó cuando se ejecutó el script mysql_secure_installation.

    Luego se le presentará un encabezado de bienvenida y el aviso de MySQL como se muestra a continuación:

     mysql>
    
  3. Para generar una lista de comandos para el indicador de MySQL, ingrese \h . Entonces verás:

     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>
    

Crear un nuevo usuario y base de datos MySQL

  1. En el siguiente ejemplo, testdb es el nombre de la base de datos, testuser es el usuario y password es la contraseña del usuario.

     create database testdb;
     create user 'testuser'@'localhost' identified by 'password';
     grant all on testdb.* to 'testuser' identified by 'password';
    

    Puede acortar este proceso creando el usuario mientras asignación de permisos de base de datos:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Luego salga de MySQL.

    exit
    

Crear una tabla de muestra

  1. Vuelva a iniciar sesión como testuser .

    mysql -u testuser -p
    
  2. Cree una tabla de muestra llamada clientes . Esto crea una tabla con un campo de ID de cliente del tipo INT para entero (incremento automático para nuevos registros, utilizado como clave principal), así como dos campos para almacenar el nombre del cliente.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Luego salga de MySQL.

    exit
    

Restablecer la contraseña raíz de MySQL

Si olvida su contraseña raíz de MySQL, puede restablecerla.

  1. Detenga la instancia actual del servidor MySQL, luego reiníciela con una opción para no solicitar una contraseña.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Vuelva a conectarse al servidor MySQL con la cuenta raíz de MySQL.

    mysql -u root
    
  3. Use los siguientes comandos para restablecer la contraseña de root. Reemplazar password con una contraseña segura.

    use mysql;
    update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
    flush privileges;
    exit
    
  4. Luego reinicie MySQL.

    sudo systemctl start mysqld
    

Afinar MySQL

MySQL Tuner es un script de Perl que se conecta a una instancia en ejecución de MySQL y proporciona recomendaciones de configuración basadas en la carga de trabajo. Idealmente, la instancia de MySQL debería haber estado funcionando durante al menos 24 horas antes de ejecutar el sintonizador. Cuanto más tiempo se haya estado ejecutando la instancia, mejores consejos dará MySQL Tuner.

  1. Descargue MySQL Tuner en su directorio de inicio.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Para ejecutarlo:

    perl ./mysqltuner.pl
    

    Se le pedirá el nombre de usuario y la contraseña de root de MySQL. El resultado mostrará dos áreas de interés:Recomendaciones generales y Variables para ajustar.

MySQL Tuner es un excelente punto de partida para optimizar un servidor MySQL, pero sería prudente realizar una investigación adicional para las configuraciones adaptadas a las aplicaciones que utilizan MySQL en su Linode.

¿Aún tienes algunas preguntas?

Únase a nuestra comunidad y publique sus preguntas para que otros entusiastas de Linode y Linux lo ayuden.

Preguntas relacionadas:
  • Cómo instalar phpMyAdmin en Centos7
  • ¿Cómo puedo configurar una pila LAMP/LEMP en mi Linode?
  • ¿Cómo ejecuto MySQL y MongoDB?

Más información

Es posible que desee consultar los siguientes recursos para obtener información adicional sobre este tema. Si bien estos se proporcionan con la esperanza de que sean útiles, tenga en cuenta que no podemos garantizar la precisión o la puntualidad de los materiales alojados externamente.

  • Manual de referencia de MySQL 5.6
  • Manual PHP MySQL
  • Ejemplos de Perl DBI para DBD::mysql
  • Guía del usuario de MySQLdb
  • Tutorial del sintonizador de MySQL