正在导入 mysql 转储

Importing mysql dump

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

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

我正在 运行 终端命令

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

通过 php exec 命令..我没有收到任何错误或错误日志中显示任何内容,但似乎没有任何内容导入:( 当我通过终端 运行 执行相同的命令时,它可以工作,但会显示一些内容按照 'using your mysql password in the terminal is stupid'

只是想知道是否有更明智的方法通过 PHP 执行此操作,这样我就不必在每次要同步时都手动执行此操作..

尝试以下操作:

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 命令会将您提供的密码作为数据库的名称。 (虽然在这种情况下它应该给你一个错误)

尝试这样的事情:

...
$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");
...

所以我最终选择了 php class 别人拼凑的 here on github。 faster/better 的工作比我在 PHP 中完成的要好,而且不会弄乱命令行。