如何将现有 MySQL 数据库的表复制到没有记录的新数据库?

Posted

技术标签:

【中文标题】如何将现有 MySQL 数据库的表复制到没有记录的新数据库?【英文标题】:How to copy the tables of an existing MySQL database to a new database without the records? 【发布时间】:2013-10-28 14:30:54 【问题描述】:

我是 mysql 新手。现在,我正在尝试在一个新的虚拟主机中复制一个已经存在的 php 网站和一个 SQL 数据库。我希望创建一个与旧网站数据库结构相同的新 SQL 数据库,并将新的 PHP 网站与新数据库连接。

我已经知道如何将 PHP 文件与数据库连接,但我不知道如何将数据库表复制到另一个。

【问题讨论】:

这可能会有所帮助。 ***.com/questions/6175473/… 【参考方案1】:

如果您想在不使用 phpMyAdmin 等工具的情况下执行此操作,您可以使用 SHOW TABLES;SHOW CREATE TABLE table_name; 查询来遍历您要复制的数据库。所以如果你把它放到 PHP 脚本中,你会得到类似的东西:

<?php 

$host_name = "localhost";
$user_name = "xfiddlec_user";
$pass_word = "public";
$database_name = "xfiddlec_max";
$port = "3306";

$first_connect = new mysqli($host_name, $user_name, $pass_word, $database_name, $port);
//$second_connect = new mysqli($host_name2, $user_name2, $pass_word2, $database_name2, $port2);
$sql = "SHOW TABLES";

$result = $first_connect->query($sql);
if (($result) && ($result->num_rows > 0))

//convert query result into an associative array
while ($row = $result->fetch_row())

    $sql2 = "SHOW CREATE TABLE $row[0]";
    $res = $first_connect->query($sql2)->fetch_row();
    //echo "<pre>"; print_r($res); echo "</pre>";
    $createSQL = $res[1];
    $second_connect->query($createSQL);
    echo $createSQL;

我已经评论了一些部分,以便您可以在 PHP Fiddle here 上试用它。但是,如果可以的话,最好使用一些工具。 :)

【讨论】:

感谢您的帮助!我可以用 PHPMyAdmin 做到这一点,而且效果很好。【参考方案2】:

您想使用 phpMyAdmin 之类的实用程序直接复制数据库。您不想使用 PHP 以编程方式执行此操作。看看this。

【讨论】:

+1 但仍然像 PHPMyAdmin 这样的实用程序......你不希望......以编程方式使用 PHP......你不觉得有点矛盾吗? @RaymondNijland 我想说的是,您无需编写自定义 PHP 脚本即可实现此目的,只需使用数据库管理工具即可。我并不认为与我相矛盾,但显然它并不清楚,鉴于你的回应:) 相信我,我知道 PHPMyAdmin 是如何工作的,但我出于一些充分的理由避免使用它(因为使用 cvedetails.com/vulnerability-list/vendor_id-784/… 不安全)但这是一些荷兰语的讽刺(笑话).. 谢谢!正是我想要的。 @RaymondNijland 对不起!我错过了这个笑话:P 我知道你知道 phpMyAdmin 是如何工作的!

以上是关于如何将现有 MySQL 数据库的表复制到没有记录的新数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在mysql phpmyadmin中每天将记录从一个表复制到另一个表

MySQL如何复制表中的一条记录并插入

如何修改现有列的数据类型?

如何使用 PHP 将记录从远程 SQL Server 2005 复制到本地 mySQL?

SQL Server 将现有表复制到新表中但跳过重复记录

如何在 Navicat 复制和粘贴数据