如何将现有 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中每天将记录从一个表复制到另一个表