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