1

あるサーバーにある 1 つの mysql データベースから別のサーバー (あなたのいる場所) にデータを同期しようとしています。

データをパッケージ化し、サーバーにダウンロードして解凍する一連のphpスクリプトがあります..しかし、コマンドラインを介してデータをインポートすることにほとんど喜びがありません。

端末コマンドを実行しています

mysql -u dbusername -h blaa.mysql.eu1.frbit.com mypasswordhere データベース名 < /var/www/blaa/sqlfilehere.sql

php execコマンド経由..エラーは表示されず、エラーログに何も表示されませんが、何もインポートされていないようです:(ターミナル経由で同じコマンドを実行すると、動作しますが、「ターミナルでmysqlパスワードを使用すると」の行に沿って何かが表示されますバカ'

同期するたびに手動で行う必要がないように、PHP を介してこれを行うためのより適切な方法があるかどうか疑問に思っています..

4

3 に答える 3

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

以下を試してください:

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 に答える