1

首先,我在使用 MYSQLDump 时遇到了严重的问题,我们在这里为我们的主域提供了一个专用服务器,我正在运行以下命令:

mysqldump --opt -h localhost -u root -p ***** --all-databases > ~/var/www/vhosts/mydomain/httpdocs/db.sql

我什么也没得到:(

但更重要的是,我没有对我可以访问的每台服务器的 root 访问权限。但我确实有数据库用户名和密码。肯定有一种 PHP 唯一的方法可以转储 SQL 数据库的全部内容吗?

4

3 回答 3

0

那么为什么不使用数据库的用户/密码来执行每个数据库转储,如下所述:

http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

mysqldump [选项] --databases db_name1 [db_name2 db_name3...]

我只知道备份 mysql 数据库的两个选项。一种是使用mysqldump,另一种是停止mysql-server并备份数据库文件。使用 PHP 或任何会持续更长时间并导致更多麻烦的转储,然后只使用 mysqldump!

于 2013-03-05T15:35:48.967 回答
0

我不知道有一个 MySQL 根。

好吧,那是您问题的最可能原因,因为您有这个:

mysqldump --opt -h localhost -u root -p *****
                             ^^^^^^^

-u参数需要一个 MySQL 用户,并且您可能正在使用系统root用户来提供它,这是完全不同的。

如果每个数据库都有一个单独的用户,恐怕您将不得不发出单独的转储。

此外,尝试获取错误消息。您可以通过将运算符附加 到命令来重定向 stderr到,并且可以从shell_exec()的返回中获取输出。stdout2>&1

于 2013-03-05T15:39:29.577 回答
0

在 mysqldump 命令中,-p 和密码后没有空格,因此您的行应如下所示:

mysqldump --opt -h localhost -u root -p***** --all-databases > /var/www/vhosts/mydomain/httpdocs/db.sql
于 2014-10-24T00:26:26.700 回答