1

我正在尝试将数据从一台服务器上的一个 mysql 数据库同步到另一台服务器(与您同在的位置)。

我有一系列打包数据的 php 脚本,将其下载到服务器并解压缩。但我在通过命令行导入数据时没有什么乐趣。

我正在运行终端命令

mysql -u dbusername -h blaa.mysql.eu1.frbit.com mypasswordhere database_name < /var/www/blaa/sqlfilehere.sql

通过 php exec 命令..我没有收到任何错误或错误日志中显示任何内容,但似乎没有导入任何内容:(当我通过终端运行相同的命令时,它可以工作,但会说“在终端中使用你的 mysql 密码”愚蠢的'

只是想知道是否有一种更理智的方法可以通过 PHP 来做到这一点,这样我就不必每次想要同步时都手动进行..

4

3 回答 3

0

尝试以下操作:

mysql -u dbusername -h blaa.mysql.eu1.frbit.com -p mypasswordhere database_name < /var/www/blaa/sqlfilehere.sql

或者

mysql -udbusername -hblaa.mysql.eu1.frbit.com -pmypasswordhere database_name < /var/www/blaa/sqlfilehere.sql

取决于实施(感谢 eKom 指出)。注意在密码前使用-p。这可能会有所帮助。否则 mysql 命令将您提供的密码作为数据库的名称。(尽管在这种情况下它应该给你一个错误)

于 2015-06-22T15:54:19.963 回答
0

尝试这样的事情:

...
$dbhost = "blaa.mysql.eu1.frbit.com";
$dbuser = "dbusername";
$dbpass = 'mypasswordhere';
$dbname = "database_name";
$filename = "/var/www/blaa/sqlfilehere.sql"

system("mysql -h $dbhost -u $dbuser --password='$dbpass' $dbname < $filename");
...
于 2015-06-22T15:56:00.467 回答
0

所以我最终选择了一个其他人在 github 上放在一起的 php 类。哪个比我在 PHP 中完成的工作更快/更好,并且不会弄乱命令行。

于 2015-06-23T13:35:16.750 回答