mysqldump -u user1 -ppassword1 databasename TblName | mysql -u user2 -ppassword2 anotherDatabase
Todo se puede hacer con un solo comando.
$L1 = mysql_connect('localhost', 'user1', 'pass1');
$DB1 = mysql_select_db('database1', $L1);
$L2 = mysql_connect('localhost', 'user2', 'pass2');
$DB2 = mysql_select_db('database2', $L2);
$re=mysql_query("SELECT * FROM table1",$L1);
while($i=mysql_fetch_assoc($re))
{
$u=array();
foreach($i as $k=>$v) if($k!=$keyfield) $u[]="$k='$v'";
mysql_query("INSERT INTO table2 (".implode(',',array_keys($i)).") VALUES ('".implode("','",$i)."') ON DUPLICATE KEY UPDATE ".implode(',',$u),$L2) or die(mysql_error());
}
usuario1, contraseña1, base de datos1, tabla1 se refiere a la tabla inicial usuario2, contraseña2, base de datos2, tabla2 se refiere a la tabla copiada$keyfield es la clave principal de la tabla
Lo tiraría. Mucho menos complicado que cualquier cosa basada en PHP.
mysqldump -u user1 -ppassword1 databasename > dump.sql
mysql -u user2 -ppassword2 databasename < dump.sql
Referencia MySQL:4.5.4. mysqldump:un programa de copia de seguridad de la base de datos
Si necesitas copiar la tabla en el mismo servidor puedes usar este código:
USE db2;
CREATE TABLE table2 LIKE db1.table1;
INSERT INTO table2
SELECT * FROM db1.table1;
Está copiado y pegado desde aquí:codingforums.com
No es mi solución, pero la encuentro útil.