How import large sql file (108MB) in server mysql using PHP? - php

I have a 108MB SQL file, how can i import this file in server using PHP Script?
I try to do this, but no result
mysql -h 213.xyz.200.xx -u myUsername -p MyPassword MyDatabase < temporarytable.sql

Take the space out after the -p or don't put the password in at all and it will prompt you for it.
mysql -h 213.xyz.200.xx -u myUsername -pMyPassword MyDatabase < temporarytable.sql

Related

XAMPP (Windows) backup MySQL Database Automatically

I am trying to create a batch file in Windows to backup a MySQL Database, i have tried this:
C:\xampp\MySQL\bin\MySQLDump –u root –p database_name –result-file=”C:\Users\Administrator\Desktop\MySQLDump.sql”
but i get an error saying:
Got error: 1044: Access Denied for user ``#`localhost` to database `?u` when selecting the database
The solution to this problem/error was to use one of these mysqldump commands:
mysqldump --opt --lock-tables=false -u USER -p DBNAME > dump.sql
mysqldump --opt --single-transaction -u USER -p DBNAME > dump.sql
http://alvinalexander.com/mysql/mysql-error-1044-access-denied-for-user-using-lock-tables
Try this, it worked for me.
Don't forget to replace values inside {} as you need
C:\xampp\mysql\bin\mysqldump.exe -u{username} -p{passwrod} database > {/backuppath}.sql
Completed guide can be found at here:
https://www.tectut.com/2016/04/automatically-backup-mysql-databases-on-windows/

Mysqldump in amazon using PHP

I want to have a database backup our database is hosted in amazon rds. My problem in everytime i run my PHP script it generates an sql file but it is empty.
Here is my code:
exec("/usr/bin/mysqldump -u *username* -p *password* | gzip > /var/www/html/db-backup/testdb.sql.gz");
I think that you need to specify which database you want to backup
exec("/usr/bin/mysqldump -u *username* -p*password* *dbname* | gzip > /var/www/html/db-backup/testdb.sql.gz");
and you have to specify password next to -p parameter without space (mysqldump -u youruser -pyourpassword -h yourhostname yourdatabase)

Copy remote data into local database

Can anybody help me to copy all data from remote server mysql database to local database. I am using the following code.
$command="mysql -h {$mysql_host} -u '{$mysql_username}' -p '{$mysql_password}' '{$filename}' < '{$mysql_database}'";
$output = shell_exec($command);
Try with:
mysqldump -h remote_host -u remote_user -premote_password remote_database | mysql -u local_user -plocal_password local_database
It's dumping database from remote host, and then pipe'ing output to your mysql.
In your code it'll be:
$command="mysqldump -h {$mysql_host} -u '{$mysql_username}' -p'{$mysql_password}' '{$filename}' | mysql -u '{$local_user}' -p'{$local_password}' {$local_database}";
$output = shell_exec($command);
Try mysqldump -h "REMOTE_HOST" -u'REMOTE_USER' -p'REMOTE_PASSWORD' REMOTE_DB_NAME > /PATH_TO/back_ups/back_up.sql then just find this dump by the path in the catalog
$command="mysqldump -h {$mysql_host} -u '{$mysql_username}' -p '{$mysql_password}' {$mysql_database} > '{$filename}'";
{$mysql_database} without ''

mysqldump to backup database from linux to windows server

I have a mysql server on a linux box (192.168.1.20) which has database named "retail". I want to create an automatic way to do a backup on windows server (192.168.1.30).
What is the best way to run the following code to do so :
mysqldump -h 192.168.1.20 -u root -p Retail > C:\Retail_Initiative\backup_20110315.sql
Any kind of help will be greatly appreciated.
How about creating a bat file with:
/START /WAIT mysqldump -uUSERNAME -pPASSWORD -h192.168.1.20 retail > path_to_dump_file
/START /WAIT mysql -uUSERNAME -pPASSWORD -h192.168.1.30 -e "DROP DATABASE retail; CREATE DATABASE retail;"
/START /WAIT mysql -uUSERNAME -pPASSWORD -h192.168.1.30 retail < path_to_dump_file
That should do it.

Empty files generated from running `mysqldump` using PHP

I keep getting empty files generated from running
$command = 'mysqldump --opt -h localhost -u username -p \'password\' dbname > \'backup 2009-04-15 09-57-13.sql\'';
command($command);
Anyone know what might be causing this? My password has strange characters in it, but works fine with connecting to the db.
I've ran exec($command, $return) and outputted the $return array and it is finding the command. I've also ran it with mysqldump > file.sql and the file contains
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
So it would seem like the command is working.
Remove the space between -p and the password. If it didn't work, try to remove the quotes from the password
from MySQL documentation:
If you use the short option form (-p), you cannot have a space between the option and the password.
however, it is fine to have space with -h and -u options
I believe there are no spaces between -u and the actual username.
host: localhost user: peter password: pwd
would become:
-hlocalhost -upeter -ppwd
This is how I have done it - output is with maximum gzip compression:
<?php exec("/usr/bin/mysqldump --opt --host=MYSQLHOSTNAME --user=MYSQLUSER --password=PASSWORD DATABASENAME | gzip -v -9 >DATABASENAME.". date("Y-m-d_H-i-s") . ".sql.gz");?>
To put it in plain english, make sure to use the following options (all of them).
--user=USERNAME
--host=localhost
--password=****
The next non-option phrase should be your database name. If the command is followed by another non-option phrase, it will be treated as table names.
$command="mysqldump --xml --host=localhost --user=USERNAME --password=***** DBNAME > XMLTABLE.xml";
system($command);
$command = 'C:\xampp\mysql\bin\mysqldump --opt --user=root --host=localhost --password="password" my_db'.' > '.$backupdate.$sql_file_name; exec($command);
I faced the same issue and got it fixed by quoting the password. For example --password="yourpassword".
I had empty files too using mysqldump.
I run WampServer PHP7 under Windows 10.
system('mysqldump .... ') ;
Doen't work.
I had to add the full path (or add an Environment variable) :
system('C:\wamp64\bin\mysql\mysql5.7.9\bin\mysqldump.exe ...') ;
You have to specify full path to mysqldump:
// Linux:
$command = '/usr/bin/mysqldump --opt -h localhost -u username -p \'password\' dbname > \'backup 2009-04-15 09-57-13.sql\'';
// Windows:
$command = 'c:\mysql\bin\mysqldump --opt -h localhost -u username -p \'password\' dbname > \'backup 2009-04-15 09-57-13.sql\'';

Categories