sábado, 7 de diciembre de 2013

ERROR 1356 (HY000)

Original post:  http://anothermysqldba.blogspot.com/2013/12/error-1356-hy000.html


Lo más importante de entender cuando viene sobre un error es tomar un momento y relajarse. 
A veces la gente se encuentra con un error y se vuelven nerviosos y frustrados. Tome una respiración profunda y relajarse. A veces, " La locura es como la gravedad. Todo lo que necesita es un poco de empuje "y" A veces las preguntas son complicadas y las respuestas son simples . " 

¿Qué es todo esto? Bueno, por ejemplo, se me pidió recientemente para ayudar a resolver un problema que preocupaba otra DBA. Nada significaba en la falta de respeto a todos a que DBA pero estar en un pueblo de acometidas apenas dan a la respuesta que está en frente de ellos y en lugar de espiral hacia abajo en la locura . 

Este es el concepto general de la situación. 

Después de hacer un mysqldump de una base de datos que el usuario se mudó a otra base de datos para que otros puedan ser pruebas. La importación funcionaba bien. Sin embargo, los usuarios comenzaron a aparecer errores al tratar de consultar desde un punto de vista pre-compilados. 

mysql> select * from límite <nombre_vista> 1; 

ERROR 1356 (HY000): View '. <nombre_bd> <viewname>' Referencias mesa (s) inválida o columna (s) o la función (s) o definidor / invocador de vista de los derechos carecen de usarlos 

La primera reacción fue pensar que el que algo salió mal con la importación. Hizo la vista o en realidad las tablas relacionadas se corrompen? 

No. 

Para solucionar este error lo primero que TODO era: mysql> SHOW CREATE vista <nombre_vista> \ G 

Es probable que vea algo que comienza así: 
*************************** 1. fila *************************** 
Vista: Visitantes 
 
Crear vista: CREATE ALGORITMO = DEFINER UNDEFINED = `<Some_user>` @ `<Some_host_or_IP>` SQL SECURITY DEFINER VISTA 

Después de ver que el definidor es: `<Some_user>` @ `<Some_host_or_IP>` que puedas ver las subvenciones para ese usuario. 

mysql> SHOW GRANTS para `<Some_user>` @ `<Some_host_or_IP>`; 

Resulta que la solución era sólo lo que dijo el error en el primer lugar: "definidor / invocador de los derechos de vista la falta usarlos" 

Para hacer más fácil que usted puede hacer un show subvenciones en la base de datos en el que ya trabaja y copiar la instrucción de concesión, o puede revisar qué tipo de permisos que necesita para implementar en la nueva base de datos para que el fin de reunir los datos necesarios. 

Una simple actualización de los permisos para el usuario y el error se había ido. 

" A veces las respuestas son sencillas . "