mysql_upgrade dev mysql upgrade

mysql - dev - La tabla ''performance_schema.session_variables'' no existe



upgrade mysql ubuntu (9)

Como ninguna de las respuestas anteriores explica realmente lo que sucedió, decidí intervenir y aportar más detalles sobre este problema.

Sí, la solución es ejecutar el comando de actualización de MySQL, de la siguiente manera: mysql_upgrade -u root -p --force , pero ¿qué pasó?

La causa raíz de este problema es la corrupción de performance_schema , que puede ser causada por:

  • Corrupción orgánica (volúmenes volviendo kaboom, error del motor, problema del controlador del kernel, etc.)
  • Corrupción durante el parche mysql (no es extraño que esto suceda durante un parche mysql, especialmente para actualizaciones de versiones principales)
  • Obviamente, una simple "caída de la base de datos performance_schema" causará este problema, y ​​presentará los mismos síntomas que si estuviera dañado

Este problema podría haber estado presente en su base de datos incluso antes del parche, pero lo que sucedió en MySQL 5.7.8 específicamente es que el indicador show_compatibility_56 cambió su valor predeterminado de ON por defecto a OFF . Este indicador controla cómo se comporta el motor en las consultas para configurar y leer variables (sesión y global) en varias versiones de MySQL.

Debido a que MySQL 5.7+ comenzó a leer y almacenar estas variables en performance_schema lugar de en information_schema , este indicador se introdujo como ON en las primeras versiones para reducir el radio de explosión de este cambio y para que los usuarios conozcan el cambio y se acostumbren.

OK, pero ¿por qué falla la conexión? Debido a que dependiendo del controlador que esté utilizando (y su configuración), puede terminar ejecutando comandos para cada nueva conexión iniciada en la base de datos (como show variables , por ejemplo). Debido a que uno de estos comandos puede intentar acceder a un performance_schema dañado, la conexión completa se cancela antes de iniciarse por completo.

Entonces, en resumen, es posible que (es imposible saberlo ahora) haya tenido performance_schema faltante o dañado antes de parchear. El parche a 5.7.8 luego forzó al motor a leer sus variables fuera de performance_schema (en lugar de information_schema , de donde lo estaba leyendo debido a que el indicador estaba ON ). Como performance_schema estaba dañado, las conexiones fallan.

Ejecutar la actualización de MySQL es el mejor enfoque, a pesar del tiempo de inactividad. Activar el indicador es una opción, pero tiene sus propias implicaciones, como ya se señaló en este hilo.

Ambos deberían funcionar, pero sopesa las consecuencias y conoce tus opciones :)

Después de actualizar MySQL a 5.7.8-rc y registrarlo en el servidor, recibí un error:

Table ''performance_schema.session_variables'' doesn''t exist

No puedo encontrar ninguna solución para esto. Puede usted ayudar ?


Como pregunta de sesenta y cuatro bits, si su usuario root de mysql parece estar mal configurado, intente instalar la extensión del configurador de la fuente oficial de mysql:

https://dev.mysql.com/downloads/repo/apt/

Le ayudará a configurar una nueva contraseña de usuario root.

Asegúrese de actualizar su repositorio (debian / ubuntu):

apt-get update


Mysql_upgrade también funcionó para mí:

# mysql_upgrade -u root -p --force # systemctl restart mysqld

Saludos, MSz.


Para mi sistema, el problema terminó siendo que todavía tenía Mysql 5.6 instalado y, por lo tanto, se llamaba mysql_upgrade.exe de esa instalación en lugar del 5.7. Navegue a C:/Program Files/MySQL/MySQL Server 5.7/bin y ejecute ./mysql_upgrade.exe -u root


Pude iniciar sesión en el servidor mysql después de ejecutar el comando @robregonm sugerido:

mysql_upgrade -u root -p --force

Se requiere reiniciar el servidor MySQL.


Si, mientras usa el mysql_upgrade -u root -p --force obtiene este error:

Could not create the upgrade info file ''/var/lib/mysql/mysql_upgrade_info'' in the MySQL Servers datadir, errno: 13

simplemente agregue el sudo antes del comando. Eso funcionó para mí y resolví mi problema. Entonces, es: sudo mysql_upgrade -u root -p --force :)


Siga estos pasos sin -p :

  1. mysql_upgrade -u root
  2. systemctl restart mysqld

Tuve el mismo problema y funciona!


a veces mysql_upgrade -u root -p --force no es realmente suficiente,

consulte esta pregunta: la tabla ''performance_schema.session_variables'' no existe

de acuerdo a esto:

  1. cmd abierto
  2. cd [installation_path]/eds-binaries/dbserver/mysql5711x86x160420141510/bin
  3. mysql_upgrade -u root -p --force