Hi Voytek

> I'm looking at migrating MySQL 3.x server to new machine running MySQL 4.x;
> at this time I aim to dump one by one user databases and insert data into
> MySQL 4.x,

The bits below may wrap badly, Im using a web mailer.
I did this this last year or so. Have a look at the MySQL user table:

MySQL version 3.23.49-8
mysql> desc user;
+-----------------+-----------------+------+-----+---------+-------+
| Field           | Type            | Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+
| Host            | char(60) binary |      | PRI |         |       |
| User            | char(16) binary |      | PRI |         |       |
| Password        | char(16) binary |      |     |         |       |
| Select_priv     | enum('N','Y')   |      |     | N       |       |
| Insert_priv     | enum('N','Y')   |      |     | N       |       |
| Update_priv     | enum('N','Y')   |      |     | N       |       |
| Delete_priv     | enum('N','Y')   |      |     | N       |       |
| Create_priv     | enum('N','Y')   |      |     | N       |       |
| Drop_priv       | enum('N','Y')   |      |     | N       |       |
| Reload_priv     | enum('N','Y')   |      |     | N       |       |
| Shutdown_priv   | enum('N','Y')   |      |     | N       |       |
| Process_priv    | enum('N','Y')   |      |     | N       |       |
| File_priv       | enum('N','Y')   |      |     | N       |       |
| Grant_priv      | enum('N','Y')   |      |     | N       |       |
| References_priv | enum('N','Y')   |      |     | N       |       |
| Index_priv      | enum('N','Y')   |      |     | N       |       |
| Alter_priv      | enum('N','Y')   |      |     | N       |       |
+-----------------+-----------------+------+-----+---------+-------+
17 rows in set (0.00 sec)

<p>Here is an example of the user table for MySQL version 4.0.16-2:</p>

<div class=terminal>
<pre>
mysql> desc user;
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field                 | Type                              | Null | Key |
Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host                  | varchar(60) binary                |      | PRI |     
   |       |
| User                  | varchar(16) binary                |      | PRI |     
   |       |
| Password              | varchar(16) binary                |      |     |     
   |       |
| Select_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Insert_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Update_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Delete_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Create_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Drop_priv             | enum('N','Y')                     |      |     | N   
   |       |
| Reload_priv           | enum('N','Y')                     |      |     | N   
   |       |
| Shutdown_priv         | enum('N','Y')                     |      |     | N   
   |       |
| Process_priv          | enum('N','Y')                     |      |     | N   
   |       |
| File_priv             | enum('N','Y')                     |      |     | N   
   |       |
| Grant_priv            | enum('N','Y')                     |      |     | N   
   |       |
| References_priv       | enum('N','Y')                     |      |     | N   
   |       |
| Index_priv            | enum('N','Y')                     |      |     | N   
   |       |
| Alter_priv            | enum('N','Y')                     |      |     | N   
   |       |
| Show_db_priv          | enum('N','Y')                     |      |     | N   
   |       |
| Super_priv            | enum('N','Y')                     |      |     | N   
   |       |
| Create_tmp_table_priv | enum('N','Y')                     |      |     | N   
   |       |
| Lock_tables_priv      | enum('N','Y')                     |      |     | N   
   |       |
| Execute_priv          | enum('N','Y')                     |      |     | N   
   |       |
| Repl_slave_priv       | enum('N','Y')                     |      |     | N   
   |       |
| Repl_client_priv      | enum('N','Y')                     |      |     | N   
   |       |
| ssl_type              | enum('','ANY','X509','SPECIFIED') |      |     |     
   |       |
| ssl_cipher            | blob                              |      |     |     
   |       |
| x509_issuer           | blob                              |      |     |     
   |       |
| x509_subject          | blob                              |      |     |     
   |       |
| max_questions         | int(11) unsigned                  |      |     | 0   
   |       |
| max_updates           | int(11) unsigned                  |      |     | 0   
   |       |
| max_connections       | int(11) unsigned                  |      |     | 0   
   |       |
+-----------------------+-----------------------------------+------+-----+---------+-------+
31 rows in set (0.07 sec)

Note the 13 extra columns. Hence scripts like this that I had for version 3:

insert into user values('localhost','www',password(''),
    'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');

Now have to be like this for version 4:

insert into user values('localhost','www',password(''),
    'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N',
    'N','N','N','N','N','N','','','','','0','0','0','0'
    );

Thats the only changes that I had to do. 


-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to