如何在PHP MYSQL中将数据库表和每条记录从一个数据库服务器复制到另一个数据库服务器?>

dev*_*one 3 php mysql database

您好我已经编写了一个代码,可以将数据库表从一个服务器复制到另一个服务器,但每个表的记录没有复制如何写一个函数,可以将表和每个记录从一个数据库服务器复制到另一个数据库?

这是我的示例代码:

<?php
$dbNewDB = 'newdb';
$dbNewUser = 'newroot';
$dbNewUserPswd = 'newpass';

$dbConnect = mysql_connect('localhost', 'root', 'mypassword') or die('Couldn\'t connect to MySql:'.mysql_error());
$dbNewConnect = mysql_connect('localhost', $dbNewUser, $dbNewUserPswd) or die('Couldn\'t connect to MySql:'.mysql_error());

$sqlStatement = "SHOW TABLES FROM olddb";
$result = mysql_query($sqlStatement,$dbConnect) or die('Unable to get tables: '.mysql_error());
while($row = mysql_fetch_row($result)) 
    {
        //Drop table if exist
        $sqlStatement = "DROP TABLE IF EXISTS " . $dbNewDB . "." . $row[0];
        mysql_query($sqlStatement,$dbNewConnect) or die("Failed to delete: " . mysql_error());
        //Create new table
        $sqlStatement = "CREATE TABLE " . $dbNewDB . "." . $row[0] . " LIKE olddb." . $row[0];
        echo "$sqlStatement [" . __METHOD__ . "]"; 
        mysql_query($sqlStatement,$dbNewConnect)or die("Failed to create: ". mysql_error());
        //Insert data
        $sqlStatement = "INSERT INTO " . $dbNewDB . "." . $row[0] . " SELECT * FROM " . $dbNewDB . "." . $row[0];
        echo "$sqlStatement [" . __METHOD__ . "]"; 
        mysql_query($sqlStatement,$dbNewConnect)or die("Table copy failed: ".mysql_error());
        echo "$row[0] copy done. [" . __METHOD__ . "]"; 
    }

mysql_free_result($result);
mysql_close($dbConnect);
mysql_close($dbNewConnect);

?> 
Run Code Online (Sandbox Code Playgroud)

我的代码已经正常运行所有我想修复以复制每个表的记录.有什么想法吗?还是帮忙?

谢谢!

crn*_*nlx 5

您可以像下面这样以SQL格式转储整个数据库:

mysqldump --user=root --password=whatever --databases dbtest --opt --quote-names --complete-insert > testbkup.sql

然后你可以像这样导入它:

mysql -u root -p whatever dbtest < testbkup.sql

(注意:user = root,password = whatever,dbtest是你的数据库.)

只是说.