DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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