470,848 Members | 1,450 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,848 developers. It's quick & easy.

Back up mysql db from shell

Hi there.
I need to update a remote database from a local one. I use mysqldump in
my php page in order to create a file for each table, like this:

$command="mysqldump table_products > table_products.sql";
system($command);

This works perfect and it gives me a file with a drop-table,
create-table and all the insert values.

Then I need to connect to the remote server and run the
table_products.sql file.

The way I do that is by calling the following in my php page:

$command="mysql --host=$host --user=$user --password=$pass
--database=$db;";
system($command);

, where $host, $user etc are being set at the top of the page. This
works fine and I get connected to the remote database.

Now I need to run the following mysql command: source stb_products.sql

When I try this sequence from a command line (windows dos prompt), it
works perfect. When I
call "mysql --host=$host --user=$user --password=$pass --database=$db;"
in command line I get the "mysql>" prompt, and the run the "source
table_products.sql" and the remote database gets updated.

When I do this through PHP the last command doesn't work.

I guess I am not calling 'source' from within a "mysql" prompt?

How should I do it?

Any other ideas for achieving the same result? I need to do everything
from a single PHP page that runs on a local machine.

The full code is the following :
//DUMP DATA IN FILE
$command="mysqldump backcatalogue table_products > table_products.sql";
system($command);

//CONNECT TO REMOTE DATABASE
$command="mysql --host=$ohost --user=$ouser --password=$opass
--database=$odb;";
system($command);

//UPDATE REMOTE DATABASE FROM FILE
$command ="mysql source table_products.sql;";
system("command ") ;

Thanks in advance,
Asaq
END PHP CODE -->

May 10 '06 #1
3 3254
On Tue, 09 May 2006 00:35:55 -0700, apostolosl wrote:
$command="mysql --host=$host --user=$user --password=$pass
--database=$db;";
system($command);

, where $host, $user etc are being set at the top of the page. This works
fine and I get connected to the remote database.

Now I need to run the following mysql command: source stb_products.sql


That's where you're going wrong. What you want to do is:

$command="mysql --host=$host --user=$user --password=$pass
--database=$db < stb_products.sql";
system($command);

Cheers,
Andy
--
Andy Jeffries MBCS CITP ZCE | gPHPEdit Lead Developer
http://www.gphpedit.org | PHP editor for Gnome 2
http://www.andyjeffries.co.uk | Personal site and photos

May 10 '06 #2

ap********@gmail.com wrote:
Hi there.
I need to update a remote database from a local one. I use mysqldump in
my php page in order to create a file for each table, like this:

$command="mysqldump table_products > table_products.sql";
system($command);

This works perfect and it gives me a file with a drop-table,
create-table and all the insert values.

Then I need to connect to the remote server and run the
table_products.sql file.

The way I do that is by calling the following in my php page:

$command="mysql --host=$host --user=$user --password=$pass
--database=$db;";
system($command);


Adding "< stb_products.sql" to the end of the command line should work.
Tim

May 10 '06 #3
Thanks guys, I thought I tried this... Probably I was adding a
semicolon at the end of the command...
It works like a charm now!!!
Thanks again and take care...
Apostolos

May 10 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

7 posts views Thread by atlasyeo | last post: by
6 posts views Thread by Jim Flack | last post: by
reply views Thread by Mike Chirico | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.