Solucionar «ERROR 2006 (HY000): MySQL server has gone away» en MySQL/MariaDB


Cuando realizamos una restauración de un archivo sql muy grande es muy común que nos de un error:

ERROR 2006 (HY000): MySQL server has gone away

Este error se soluciona realmente fácil simplemente hay que configurar el valor max_allowed_packet en el archivo de configuracion my.cf de MySQL/MariaDB

En mi caso se ubica en /etc/my.cf aunque en su caso puede llamarse diferente y estar ubicado en otra carpeta, depende de la distribución. Editamos el archivo y agregamos max_allowed_packet:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_allowed_packet=128M

Guardamos los cambios, reiniciamos el servicio MySQL o MariaDB, ahora también es posible que no tengamos un archivo de configuración como este y las variables se tengan que configurar desde la propia consola de mysql:

[root@server] mysql -u root -p
MariaDB [(none)]> SET GLOBAL max_allowed_packet=134217728;

Ahora ya podemos importar sin problemas, en caso necesario se puede subir más los valores, en el caso de hacerlo por consola el valor se coloca en bytes, por ejemplo se coloca 134217728 para 128MB o 1073741824 si queremos configurar 1GB.

Publicado en Servidores | Etiquetado , , | Deja un comentario

Solucionar «Specified key was too long; max key length is 767 bytes» en Laravel

Un error normal con Laravel al correr las migraciones por primera vez luego de instalar Laravel es que tenga problemas con el largo de la Key arrojando un error como el de abajo:

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table

   Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  at /var/www/html/api.wordpress.lan/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

Sigue leyendo

Publicado en Laravel | Etiquetado , | Deja un comentario

Montar una carpeta cifrada dentro de Dropbox en Linux

Uno de los beneficios de los servicios en la nube es poder compartir información entre dispositivos de forma sencilla y Dropbox es un gran servicio para ello pero nunca hay que descuidar la seguridad y siempre debemos tener presente que como todo servicio en la nube puede ser comprometido.

Hay que tener mucho cuidado con lo que subimos a Dropbox o a cualquier servicio en la nube, bien puede ser hackeado el propio servicio o bien puede ser solo nuestra cuenta pirateada de alguna forma.

Una de las mejores formas que tenemos de subir información de forma segura es cifrando los datos, hoy les mostrare dos métodos, el primero mediante encfs y el segundo mediante Luks.

Sigue leyendo

Publicado en Seguridad | Etiquetado , , , | Deja un comentario

Conectarse a SFTP desde PHP con SSH2

Una tarea bastante habitual desde PHP es conectarse a un FTP para lo cual PHP tiene diferentes funciones pero que sin embargo si se trata de SFTP seguramente haya que habilitar la librería libssh2 que no viene instalada por defecto.

Si para la instalación de PHP se utilizan el tutorial Instalación del Stack Nginx+MySQL+MutiPHP en CentOS o  Crear contenedor Docker con CentOS7/Nginx/MariaDB y MultiPHP se puede continuar sin problemas, de lo contrario convendrá solo se instalen los paquetes que se necesiten.

Sigue leyendo

Publicado en Desarrollo, Docker | Etiquetado , , , , | Deja un comentario

Instalación del Stack Nginx+MySQL+MutiPHP en CentOS

Que PHP es uno de los lenguajes más usados en la web no es ninguna novedad, ya cuenta con muchos años en el mercado y con varias versiones publicadas.

En la web conviven muchos proyectos desarrollados a través de los años y cada uno con requerimientos de versión de PHP diferentes.

Por eso contar con un entorno con varias versiones de PHP diferentes y que permita configurar cada sitio por separado con una versión específica es una necesidad ya se trate de un entorno de desarrollo o de un servidor de producción.

Por eso en este artículo se tratará la instalación de siete versiones de PHP en un mismo sistema, si bien la configuración se hará con el servidor Nginx perfectamente se puede adaptar para usar Apache.

Para saber porque Nginx es mejor opción que Apache una lectura recomendada es Apache vs Nginx vs LiteSpeed donde se puede ver una excelente comparativa de los tres navegadores más usados actualmente en la web.

Sigue leyendo

Publicado en Varios | Deja un comentario

Hilos, Canales y multitarea en Go

Hace unos días vimos como implementar hilos en en Go, el articulo anterior puedes verlo aquí Hilos y multitarea en Go ,hoy vamos a tomar ese mismo código y mejorarlo para hacerlo más eficiente y  adaptarlo para usar canales.

¿Que son los canales?

Cuando creamos un hilo hijo la ejecución de el hilo se separa de la ejecución principal y si necesitamos devolver datos o información a la ejecución principal una vez que el hilo termina la mejor manera de hacerlo es mediante canales, osea que en criollo un canal es un medio de comunicación entre el hilo y el programa principal.

Sigue leyendo

Publicado en Desarrollo, Go | Etiquetado , , , , | Deja un comentario

Actualización del contenedor CentOS7 [Febrero 2019]

Esto es una actualización de la imagen utilizada en Crear contenedor Docker con CentOS 7 para crear un entorno e instalar todo lo que necesitemos.

Si te interesa un entorno PHP + Nginx ya preconfigurado te recomiendo Crear contenedor Docker con CentOS7/Nginx/MariaDB y MultiPHP

A nivel de software no hay grandes campos solo se actualizaron paquetes de sistema y de servicios, una lista completa de los paquetes actualizados:

Sigue leyendo

Publicado en Docker | Etiquetado , | Deja un comentario

Actualización CentOS7/Nginx/MariaDB [Febrero 2019]

Esto es una actualización de la imagen utilizada en Crear contenedor Docker con CentOS7/Nginx/MariaDB y MultiPHP para crear un entorno de desarrollo ideal para PHP.

A nivel de software no hay grandes campos solo se actualizaron paquetes de sistema y de servicios, una lista completa de los paquetes actualizados:

Sigue leyendo

Publicado en Docker | Etiquetado , , , | Deja un comentario

Hilos y multitarea en Go

Una de las cosas más llamativas de Go es la facilidad con que se aprovecha de forma nativa la multitarea, en la programación el procesamiento en hilos es la capacidad del lenguaje para ejecutar múltiples procesos o subprocesos a la vez en paralelo. En una aplicación multiproceso, los procesos y los hilos comparten los recursos de uno o varios núcleos.

Sigue leyendo

Publicado en Desarrollo, Go | Etiquetado , , , , | Deja un comentario

Instalando GO en Fedora/Debian/Ubuntu

Go es un lenguaje creado por Google con una sintaxis parecida a C, pero que incorpora funciones de lenguajes de alto nivel,  incorpora una sintaxis simplificada es bastante peculiar aunque aporta cosas interesantes , actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X

¿Qué ventajas tiene Go?

  • Es sencillo de aprender.
  • Es muy veloz, tiene un alto rendimiento.
  • Soporta miles de conexiones simultáneas.
  • Es eficiente con multitarea.

¿Para qué sirve Go?

Es un lenguaje que viene haciendo bastante ruido, Go sirve para muchos casos sin embargo donde más destaca es para Backend / APIs RESTful y Machine Learning por su alto rendimiento y capacidad para manejar grandes cantidades de conexiones simultáneas y maneja muy bien el tema de la multitarea además aprovecha al máximo los núcleos de CPU de una forma que ningún otro lenguaje popular hace.

Sigue leyendo

Publicado en Go | Etiquetado , , , | Deja un comentario