GNU/Linux >> Tutoriales Linux >  >> Cent OS

Preguntas frecuentes sobre la implementación de MySQL

¿Qué es MySQL?

MySQL es un sistema de base de datos relacional de código abierto rápido, confiable, escalable y fácil de usar. Cuenta con el respaldo de Oracle. MySQL Server está diseñado para manejar aplicaciones de producción de carga pesada y de misión crítica. Si desarrolla sitios web o aplicaciones web, MySQL es una buena opción. MySQL es un componente esencial de la pila LAMP, que incluye Linux, Apache, MySQL y PHP.

¿Por qué usar la pila Bitnami MySQL?

Bitnami MySQL Stack siempre está actualizado y es seguro. La instalación y configuración de la pila está completamente automatizada, lo que facilita que todos, incluso aquellos que no son muy técnicos, la pongan en marcha.

Tutoriales y documentación de Bitnami MySQL

  • Página MySQL de Bitnami
  • Guía del usuario de Bitnami MySQL
  • Registro de cambios de Bitnami MySQL
  • Para crear una base de datos MySQL y un usuario
  • Para modificar la contraseña de administrador de MySQL
  • Para asegurar MySQL
  • Para realizar un volcado y restauración de copias de seguridad de MySQL
  • Para configurar MySQL Workbench
  • Para comprobar el archivo de registro de MySQL

¿Dónde encontrar las credenciales raíz de MySQL?

Las credenciales raíz de la instancia/nodo/máquina se enviarán a su dirección de correo electrónico registrada tan pronto como se inicie la instancia de MySQL.

Las credenciales de MySQL se almacenan en un archivo independiente. Para obtener las credenciales en cualquier momento, siga estos pasos:

  • Conéctese a la instancia/nodo/máquina a través de SSH usando raíz credenciales de usuario.
  • Ejecute el siguiente comando para obtener las credenciales de su aplicación:
      cat /home/bitnami/bitnami_credentials

Nota:Para el usuario de MySQL es root, desde arriba copie solo la contraseña

Cómo abrir el puerto MySQL 3306 usando UFW Firewall

De forma predeterminada, el puerto Bitnami MySQL está configurado para ser accesible solo en localhost. Para abrir el puerto MySQL a Internet abierto o solo a direcciones IP específicas, siga los pasos a continuación.

1. Conéctese a la instancia/nodo/máquina a través de SSH usando raíz credenciales de usuario.

Riesgo de seguridad :Hacer que este puerto de red de la base de datos se conecte a la Internet pública es un riesgo de seguridad importante. Se recomienda encarecidamente abrir el puerto MySQL solo a direcciones IP de confianza.

2 (a) Ejecute el siguiente comando para abrir un puerto a Internet:

      ufw allow mysql/tcp

2 (b) Ejecute el siguiente comando para abrir un puerto a una dirección IP específica

      ufw allow from IPADDRESS to any port 3306 proto tcp

¿Cómo conecto la base de datos MySQL?

Una vez que haya lanzado su Instancia MySQL.You puede conectarse a la base de datos desde la misma instancia usando mysql herramienta de cliente..

  • Conéctese a la instancia/nodo/máquina a través de SSH usando raíz credenciales de usuario.
           ssh root@<public IP>
  • Ejecute el siguiente comando para iniciar sesión en la base de datos mysql
         # mysql -u root -p

Se le pedirá que ingrese la raíz contraseña de usuario…

¿Cómo permitir el acceso MYSQL a direcciones IP remotas?

De forma predeterminada, MySQL no permite que los clientes remotos se conecten a la base de datos MySQL. Si está tratando de obtener acceso a la base de datos MYSQL de su servidor de forma remota, es importante que obtenga una respuesta similar a esta:

“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server

Solución :

Para solucionar este error, puede permitir que un cliente específico ip -dirección (Ip estática) para acceder a la base de datos MySQL que se ejecuta en un servidor. Debe ejecutar el siguiente comando en el servidor que ejecuta la base de datos MySQL:

 $ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;

Reemplace 'XXX.XXX.X.X' en el ejemplo anterior con su IP estática y su contraseña raíz en lugar de 'su-contraseña raíz'.

Nota:Esto solo funcionará si está ejecutando su Internet en un servicio basado en IP estática.

Una dirección IP estática es un número que un proveedor de servicios de Internet (ISP) asigna a una computadora para que sea su dirección permanente en Internet.

La ejecución de los comandos anteriores otorgará acceso a una IP estática específica, mediante la cual se puede acceder a MYSQL de forma remota.

Además, actualice las reglas del firewall para asegurarse de que el puerto n.° 3306 en UFW esté abierto en el servidor que ejecuta mysql base de datos.

Cómo optimizar el rendimiento de MySQL usando MySQLTuner

Herramientas que pueden ayudar a optimizar MySQL:

Para determinar si su base de datos MySQL necesita ser reconfigurada, es mejor ver cómo están funcionando sus recursos ahora. Esto se puede hacer con el comando superior o con el servicio de monitoreo de E2E. Como mínimo, debe familiarizarse con el uso de RAM y CPU de su servidor, que se puede descubrir con estos comandos:

#echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

MySQLTuner:

El script MySQLTuner evalúa su MySQL instalación, y luego genera sugerencias para aumentar el rendimiento y la estabilidad de su servidor.

  • Para instalar mysqltuner , descargue mysqltuner Guión .pl. Por ejemplo, puede descargarlo con wget :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
  • Para monitorear un servidor MySQL instalado por una pila Bitnami, pase los valores de conexión a través de la línea de comando, como se muestra a continuación. Tenga en cuenta que necesitará Perl instalado en el sistema.
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
  • La secuencia de comandos devolverá resultados similares a los siguientes:

MySQLTuner ofrece sugerencias sobre cómo mejorar el rendimiento de la base de datos. Si tiene dudas acerca de actualizar su base de datos por su cuenta, seguir las sugerencias de MySQLTuner es una de las formas más seguras de mejorar el rendimiento de su base de datos.

Ajuste de MySQL:

Al modificar la configuración de MySQL, esté alerta a los cambios y cómo afectan a su base de datos. Incluso cuando se siguen las instrucciones de programas como MySQLTuner, es mejor comprender el proceso.

El archivo de configuración Bitnami MySQL almacenado en la siguiente ubicación:/opt/bitnami/mysql/my.cnf.

Nota:Antes de actualizar su configuración de MySQL, cree una copia de seguridad de the my Archivo .cnf:

    # cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup

Las mejores prácticas sugieren que realice cambios, uno a la vez, y luego supervise el servidor después de cada cambio. Debe reiniciar MySQL después de cada cambio:

Reinicie el servidor:

     # /opt/bitnami/ctlscript.sh restart mysql

Al cambiar valores en el archivo my.cnf, asegúrese de que la línea que está cambiando no haya sido comentada con el prefijo de almohadilla (#).

key_buffer

Cambiar key_buffer asigna más memoria a MySQL, lo que puede acelerar sustancialmente sus bases de datos, suponiendo que tenga la memoria libre. El tamaño de key_buffer generalmente no debe ocupar más del 25 por ciento de la memoria del sistema cuando se usa el motor de tabla MyISAM y hasta el 70 por ciento para InnoDB. Si el valor se establece demasiado alto, se desperdician recursos.

Según la documentación de MySQL, para servidores con 256 MB (o más) de RAM con muchas tablas, se recomienda una configuración de 64 MB. Los servidores con 128 MB de RAM y menos tablas se pueden configurar en 16 M, el valor predeterminado. Los sitios web con incluso menos recursos y tablas pueden tener este valor establecido más bajo.

max_allowed_packet

Este parámetro le permite establecer el tamaño máximo de un paquete que se puede enviar. Un paquete es un solo estado de SQL, una sola fila que se envía a un cliente o un registro que se envía de un maestro a un esclavo. Si sabe que su servidor MySQL va a procesar paquetes grandes, es mejor aumentar esto al tamaño de su paquete más grande. Si este valor se establece demasiado pequeño, recibirá un error en su registro de errores.

pila_de_hilos

Este valor contiene el tamaño de la pila para cada subproceso. MySQL considera que el valor predeterminado de la variable thread_stack es suficiente para un uso normal; sin embargo, si se registra un error relacionado con thread_stack, esto puede incrementarse.

tamaño_caché_hilo

Si thread_cache_size está "desactivado" (establecido en 0), entonces cualquier nueva conexión que se realice necesita un nuevo hilo creado para ello. Cuando las conexiones se sueltan, el hilo se destruye. De lo contrario, este valor establece la cantidad de subprocesos no utilizados para almacenar en un caché hasta que necesiten usarse para una conexión. En general, esta configuración tiene poco efecto en el rendimiento, a menos que esté recibiendo cientos de conexiones por minuto, momento en el que este valor debe aumentarse para que la mayoría de las conexiones se puedan realizar en subprocesos almacenados en caché.

Grupo de búfer de InnoDB

El grupo de búfer de InnoDB es el espacio de memoria que contiene muchas estructuras de datos en memoria de InnoDB, búferes, cachés, índices e incluso datos de fila. innodb_buffer_pool_size es el parámetro de configuración de MySQL que especifica la cantidad de memoria asignada al grupo de búfer de InnoDB por MySQL. Esta es una de las configuraciones más importantes en la configuración de alojamiento de MySQL y debe configurarse en función de la memoria RAM disponible del sistema.

El 80% es quizás un gran comienzo y una regla general. Desea asegurarse de que el servidor tenga suficiente RAM libre para el sistema operativo y la carga de trabajo generalmente desconocida. Sin embargo, como podemos ver a continuación, cuanto más grande es el servidor, más probable es que la regla termine desperdiciando RAM. Creo que para la mayoría de las personas comienza y termina según la regla general, principalmente porque cambiar el grupo de búfer de InnoDB requiere un reinicio en las versiones actuales.

Grupo total de búfer de RAM del servidor con regla del 80 % de RAM restante

1G                                 800 MB           200 MB

16G                               13G              3G

32G                                26G              6G

64G                                51G               13G

128G                              102G             26G

256G                             205G               51G

512G                              409G               103G

1024G                           819G                 205G

Entonces, ¿cuál es una mejor regla general? Mi regla es que ajusta innodb_buffer_pool_size lo más grande posible sin usar el intercambio cuando el sistema está ejecutando la carga de trabajo de producción. Esto suena bien en principio, pero nuevamente, requiere un montón de reinicios y puede ser más fácil decirlo que hacerlo.

conexiones_máximas

Este parámetro establece la cantidad máxima de conexiones simultáneas. Es mejor considerar la cantidad máxima de conexiones que ha tenido en el pasado antes de establecer este número, por lo que tendrá un búfer entre ese número superior y el valor de max_connections. Tenga en cuenta que esto no indica la cantidad máxima de usuarios en su sitio web a la vez; más bien muestra la cantidad máxima de usuarios que realizan solicitudes al mismo tiempo.

tabla_caché

Este valor debe mantenerse más alto que el valor de open_tables. Para determinar este valor utilice:

MOSTRAR ESTADO COMO '% abierto';


Cent OS
  1. Optimizar la base de datos MySQL

  2. Cómo copiar una base de datos MySQL

  3. Mejorar el almacenamiento en caché de la base de datos MySQL

  4. Cómo instalar el servidor de base de datos MySQL en CentOS

  5. Cómo reparar una tabla de base de datos Mysql dañada

Cómo conectarse a MySQL usando PHP

Cómo eliminar filas duplicadas en MySQL

Listar tablas en una base de datos MySQL

Servidor de base de datos MySQL

Cómo crear una base de datos en MySQL

Descripción general de MySQL