我知道你是怎么从控制台做的,我知道你可以用php执行控制台命令,但是有办法递归地将数据库转储到文件中,然后稍后从该文件恢复它PHP的?我希望它能够在Windows和nix服务器上工作。
我猜它需要循环遍历表和行,但我如何获得这些列表呢?或者甚至可以完成?如果db是一个很好的大小,似乎需要大量的内存。想法?
答案 0 :(得分:2)
mysql_query("SELECT * INTO OUTFILE 'sql/backup.sql' FROM my_table");
mysql_query("LOAD DATA INFILE 'sql/backup.sql' INTO TABLE my_table");
答案 1 :(得分:1)
您可以使用exec()
函数调用mysqldump。这会将mysqldump(数据库导出)的输出传递回PHP脚本,但您可以在那里处理它,但这是必要的。这可用于导出单个表或整个数据库。该工具可以安装在客户端计算机上,也可以在MySQL服务器上运行PHP脚本。
/path/to/mysqldump --host=[svr] --user=[user] --password=[passwd] [db]
确保传递给MySQL的用户对要备份的每个数据库具有SELECT
和LOCK TABLE
权限。
答案 2 :(得分:0)
运行SHOW TABLES;查询。遍历结果并运行deizel为每个表列出的查询。
祝你好运!答案 3 :(得分:0)
This可能有助于使用主键
SHOW CREATE TABLE my_table
答案 4 :(得分:-2)
查看mysql数据库。