in reply to Re: Import dump file into mysql DB using DBI
in thread Import dump file into mysql DB using DBI

Hi,
I don't have access to the target DB machine.
I have to automate the perl script, the script will search for ".sql" files and those files have to updated to DB.
  • Comment on Re^2: Import dump file into mysql DB using DBI

Replies are listed 'Best First'.
Re^3: Import dump file into mysql DB using DBI
by naikonta (Curate) on Oct 12, 2007 at 01:05 UTC
    I still prefer to use mysql command line for this task. If you think you have to use a perl sript, then I assume you have remote access to the DB server, in which case you can also use the mysql client from your host.

    SQL files (.sql) are meant to be executed in batch mode, each statement is terminated with a semicolon (";"). With DBI, you execute query one statement at a time and semicolons are disliked :-)

    Finally, if you still need a perl script to automate DB updating (still assuming you the remote access), this might help (sorry, I don't bother to test it).

    #!/usr/bin/perl use strict; use warnings; my $sql_file = '/path/to/sql/file.sql'; exit 0 # silently unless -r $sql_file; my $user = 'user'; my $pass = 'pass'; my $db = 'somedb'; system "mysql -u$user -p$pass $somedb < $sql_file" and die "can't update $db\n";
    Also, you may want to consider about DB backup and/or hotcopy, as both facilities are provided by mysql, AFAIK.

    Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!

Re^3: Import dump file into mysql DB using DBI
by moritz (Cardinal) on Oct 11, 2007 at 13:26 UTC
    You can always do a system "mysql $connection_data < $sql_file" (assuming that the mysql client is installed on the machine where the script is running)