Please run the script mysql_fix_privilege_tables

Aumentar la versión de las tablas de privilegios

MySQL 5.0 introduce una serie de cambios en la estructura de las tablas de permisos (las tablas en la base de datos mysql) a fin de agregar nuevos privilegios y características. Las tablas de permisos también deben actualizrse cuando se efectúa la actualización a MySQL 5.0. En primer lugar debe hacerse una copia de respaldo de la base de datos mysql, y luego emplear el siguiente procedimiento.

En Unix o sistemas similares, se deben actualizar las tablas de permisos mediante la ejecución del script mysql_fix_privilege_tables:

shell> mysql_fix_privilege_tables

Se debe ejecutar este script mientras el servidor está en ejecución. Intenta conectarse como root al servidor en localhost. Si la cuenta root requiere una contraseña, la misma debe indicarse en la línea de comandos. Para MySQL 5.0 la contraseña se indica de este modo:

shell> mysql_fix_privilege_tables --password=root_password

El script mysql_fix_privilege_tables ejecuta todas las acciones necesarias para convertir las tablas de permisos hacia el formato 5.0. Durante su ejecución podrían verse algunas alertas del tipo Duplicate column name, pero deben ignorarse.

Después de ejecutar el script, el servidor debe ser detenido y reiniciado.

MySQL 5.0 para Windows incluye un script SQL llamado mysql_fix_privilege_tables.sql que puede ejecutarse empleando el cliente mysql. Si la instalación de MySQL está ubicada en C:\Program Files\MySQL\MySQL Server 5.0, el comando se vería así:

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -p mysql
mysql> SOURCE C:/Program Files/MySQL/MySQL Server 5.0/scripts/mysql_fix_privilege_tables.sql

Si la instalación se localizara en cualquier otro directorio, habrá que ajustar la ruta apropiadamente.

El comando mysql solicitará la contraseña para el usuario root; hay que ingresarla.

Al igual que en el procedimiento para Unix, se podrían observar algunas alertas Duplicate column name a medida que mysql procesa las sentencias en el script mysql_fix_privilege_tables.sql, pero pueden ignorarse.

Luego de ejecutar el script, hay que detener y reiniciar el servidor.

Si se está actualizando a MySQL 5.0.1 o posterior, el procedimiento de actualización de las tablas de permisos que se acaba de describir agrega columnas relacionadas con las vistas, para los privilegios CREATE VIEW y SHOW VIEW. Estos privilegios existen a nivel global y a nivel de base de datos. Sus valores iniciales se establecen de esta forma:

·         En MySQL 5.0.2 o posterior, mysql_fix_privilege_tables copia el valor de Create_priv de la tabla user dentro de las columnas Create_view_priv y Show_view_priv.

·         En 5.0.1, los permisos relacionados con vistas no están habilitados para ninguna cuenta, por lo que no se puede utilizar GRANT para otorgar estos permisos a las cuentas que deban tenerlos. Para solventar esto, hay que conectarse al servidor como root y utilizar las siguientes sentencias para otorgarle estos privilegios a las cuentas root en forma manual, a través de UPDATE:

·                mysql> UPDATE mysql.user SET Show_view_priv = 'Y', Create_view_priv = 'Y'
·                    -> WHERE User = 'root';
·                mysql> FLUSH PRIVILEGES;

Luego de esto, root se podrá usar GRANT para otorgar privilegios de vistas a otras cuentas. Nota: Se deben emplear las sentencias tal como se indican; GRANT ALL no tiene efecto en los niveles global y de base de datos, porque GRANT requiere que realmente se posean los privilegios que se otorgan.

 
Kingston