Mostrando entradas con la etiqueta procedures. Mostrar todas las entradas
Mostrando entradas con la etiqueta procedures. Mostrar todas las entradas

MySQL: problemas al crear procedimientos

Tras realizar una actualización del servidor MySQL a su última versión, al importar nuevos procedimientos al motor de base de datos, éste proceso falla y parece ser problema de que una tabla está corrupta.
mysql> source /home/javier/procedures.sql
ERROR 1548 (HY000):
Cannot load from mysql.proc. The table is probably corrupted
La forma de solucionarlo debería de ser simple. Si la tabla está corrupta, la reparamos con el comando repair de mysql y debería de desaparecer el problema.
mysql> repair table mysql.proc;
+------------+--------+----------+----------+
| Table      | Op     | Msg_type | Msg_text |
+------------+--------+----------+----------+
| mysql.proc | repair | status   | OK       |
+------------+--------+----------+----------+
1 row in set (0.00 sec)
Tras realizar esto, el problema persiste y no es por que la tabla esté corrupta. Como se observa en la salida del comando anterior, el estado de la tabla es correcto (OK). Por lo tanto, el problema no está en una tabla corrupta.
Investigando algo más, observé que el problema está en que tras la actualización no se hizo un upgrade de las tablas (mysql_upgrade), que no es necesario para el correcto funcionamiento de mysql, pero sí para, por ejemplo, crear nuevos procedimientos. 
shell> mysql_upgrade -u root -p
Enter passwd:
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
Running 'mysqlcheck with default connection arguments
mysql.host                                               OK
mysql.ndb_binlog_index                                   OK
mysql.plugin                                             OK
mysql.proc                                               OK
mysql.procs_priv                                         OK
mysql.proxies_priv                                       OK
...
Si ahora intentamos crear los procedimientos, ya es posible.
mysql> source /home/javier/procedures.sql
Query OK, 0 rows affected (0.00 sec)
Leer más

MySQL: backup de procedimientos

MySQL permite crear procedimientos o funciones específicas para manejar las bases de datos o algunas tablas concretas.
mysqldump por defecto realiza el backup de los datos y los esquemas de las bases de datos y tablas, y también de los triggers, pero no de los procedimientos. Para incluir estos datos, habría que añadir la opción "--routines"
mysql> mysqldump --routines > all_data.sql
Si sólo nos interesa realizar un backup de los procedimientos,
mysql> mysqldump -u root -p --no-create-info \
     --no-data --no-create-db --skip-opt \
     --routines DATA_BASE > procedures.sql
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios