<p>Without local access to the server, is there any way to duplicate/clone a MySQL db (with content and without content) into another without using <code>mysqldump</code>?</p>

<p>I am currently using MySQL 4.0.</p>

You can duplicate a table without data by running:
```
```
CREATE TABLE x LIKE y;
```
```
(See the
MySQL CREATE TABLE
Docs)
You could write a script that takes the output from
```
SHOW TABLES
```
from one database and copies the schema to another. You should be able to reference schema+table names like:
```
```
CREATE TABLE x LIKE other_db.y;
```
```
As far as the data goes, you can also do it in MySQL, but it's not necessarily fast. After you've created the references, you can run the following to copy the data:
```
```
INSERT INTO x SELECT * FROM other_db.y;
```
```
If you're using MyISAM, you're better off to copy the table files; it'll be much faster. You should be able to do the same if you're using INNODB with
per table table spaces
.
If you do end up doing an
```
INSERT INTO SELECT
```
, be sure to temporarily
turn off indexes
with
```
ALTER TABLE x DISABLE KEYS
```
!
EDIT
Maatkit
also has some scripts that may be helpful for syncing data. It may not be faster, but you could probably run their syncing scripts on live data without much locking.