(mysql.info.gz) Upgrading-grant-tables
Info Catalog
(mysql.info.gz) Upgrading-from-3
(mysql.info.gz) Upgrade
(mysql.info.gz) Upgrading-to-arch
2.10.7 Upgrading the Grant Tables
---------------------------------
Some releases introduce changes to the structure of the grant tables
(the tables in the `mysql' database) to add new privileges or
features. To make sure that your grant tables are current when you
update to a new version of MySQL, you should update your grant tables
as well.
On Unix or Unix-like systems, update the grant tables by running the
`mysql_fix_privilege_tables' script:
shell> mysql_fix_privilege_tables
You must run this script while the server is running. It attempts to
connect to the server running on the local host as `root'. If your
`root' account requires a password, indicate the password on the
command line. For MySQL 4.1 and up, specify the password like this:
shell> mysql_fix_privilege_tables --password=root_password
Prior to MySQL 4.1, specify the password like this:
shell> mysql_fix_privilege_tables root_password
The `mysql_fix_privilege_tables' script performs any actions necessary
to convert your grant tables to the current format. You might see some
`Duplicate column name' warnings as it runs; you can ignore them.
After running the script, stop the server and restart it.
On Windows systems, there isn't an easy way to update the grant tables
until MySQL 4.0.15. From version 4.0.15 on, MySQL distributions
include a `mysql_fix_privilege_tables.sql' SQL script that you can run
using the `mysql' client. If your MySQL installation is located at
`C:\mysql', the commands look like this:
C:\> C:\mysql\bin\mysql -u root -p mysql
mysql> SOURCE C:\mysql\scripts\mysql_fix_privilege_tables.sql
If your installation is located in some other directory, adjust the
pathnames appropriately.
The `mysql' command will prompt you for the `root' password; enter it
when prompted.
As with the Unix procedure, you might see some `Duplicate column name'
warnings as `mysql' processes the statements in the
`mysql_fix_privilege_tables.sql' script; you can ignore them.
After running the script, stop the server and restart it.
If you are upgrading to MySQL 5.0.1 or later, the grant table upgrade
procedure just described will add view-related columns for the `CREATE
VIEW' and `SHOW VIEW' privileges. These privileges exist at the global
and database levels. Their initial values are assigned as follows:
* In MySQL 5.0.2 or later, `mysql_fix_privilege_tables' copies the
`Create_priv' value in the `user' table to the `Create_view_priv'
and `Show_view_priv' columns.
* In 5.0.1, the view-related privileges are not enabled for any
accounts, so you cannot immediately use `GRANT' to give them to
accounts that should have them. To deal with this, first connect
to the server as `root' and issue the following statements to give
the privileges to the `root' accounts manually with `UPDATE':
mysql> UPDATE mysql.user SET Show_view_priv = 'Y', Create_view_priv = 'Y'
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
After this, `root' can use `GRANT' to give the view privileges to
other accounts. Note: You should issue the statements just shown,
`GRANT ALL' will not work at the global and database levels,
because `GRANT ALL' requires that you actually possess all
privileges.
Info Catalog
(mysql.info.gz) Upgrading-from-3
(mysql.info.gz) Upgrade
(mysql.info.gz) Upgrading-to-arch
automatically generated byinfo2html