Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dump mysql tabele - kako?

[es] :: PHP :: dump mysql tabele - kako?

[ Pregleda: 587 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3833
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon dump mysql tabele - kako?04.10.2005. u 18:37

Kako da dobijem dump MySQL tabele (tabela) kao sto se to dobije kad radim bekap iz phpMyAdmina ili iz phpBB Admin panela?

Nasao sam ovo:
Code:
<?php
include './connection.php';
$now = date('d.m.Y',time());
$backupFile = "backup/$now.sql";
$query = "SELECT * INTO OUTFILE '$backupFile' FROM $db_table"; //ime tabele je u connection.php
$result = mysql_query($query);

if ($result) { echo "bacqp finished!"; }
else { echo mysql_error(); }

?>


...medjutim, dobijam sledecu gresku:
Citat:
Can't create/write to file 'backup\04.10.2005.sql' (Errcode: 2)


Probao sam da mi $now bude samo timestamp, ali opet ista greska... Takodje sam menjao putanju u /backup/$now.sql kao i ./backup/$now.sql

Folder backup postoji, a testiram ovo na Windowsu tako da mi chmod ne treba.

Da li ima neka funkcija koja moze da dump-uje bas kao phpMyAdmin jer nisam nasao nista slicno, a i ovaj gore metod ne znam uopste kakav output daje...
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
04.10.2005. u 18:37 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3833
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: dump mysql tabele - kako?04.10.2005. u 18:41
Izgooglao sam nesto u vezi ove greske, izgleda da MySQL "hoce" ovo da dump-uje u TEMP folder mog sistema a tamo nema backup... ali ja zelim u trenutni folder da dumpujem... tj. folder/backup/datum.sql
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
04.10.2005. u 18:41 

SmilieBG
Aleksandar Skodric
NL

Moderator
Član broj: 13094
Poruke: 1803
*.speed.planet.nl.



Profil

icon Re: dump mysql tabele - kako?04.10.2005. u 22:08
Ne znam koje privilegije imas nad sistemom, ali pokusaj sa:

exec('mysqldump -uusername -ppassword -hhostname ime_baze > /lokacija/do/dump/fajla.sql');

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
04.10.2005. u 22:08 

Dejan Topalovic
Dejan Topalović
Oracle DBA & PL/SQL Developer, Erste Sparinvest (..
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

ICQ: 20142302
Sajt: www.outsourcing-it.com


Profil

icon Re: dump mysql tabele - kako?05.10.2005. u 10:29
Code:
$backupFile = "backup/$now.sql";
Naveo si relativnu putanju do fajla, koja se nadodaje na defaultnu putanju direktorija u koji MySQL zapisuje podatke iz klauzule OUTFILE ili DUMPFILE...
Pokusaj prvo da navedes apsolutnu putanju, tako sto ces staviti npr. /putanja/do/direktorija/u/kojem/mysql/ima/write/privilegiju/$now.sql

Da li ti je mozda ukinuta FILE privilegija, bez koje ne mozes koristiti klauzulu OUTFILE ?
05.10.2005. u 10:29 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3833
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: dump mysql tabele - kako?05.10.2005. u 12:33
@SmilieBG: Znam ja za taj nacin ali pokusavam to da odradim sa sto manjim privilegijama... bash kroz PHP... bas cu danas da se zezam s tim pa cu da javim
@StRiPy: Ne znam da li imam FILE privilegiju... mislim, u lokalu, gde sam je testirao - imam. Ali na sajtu, ne znam

Pokusacu `rucno` pa cu javiti...
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
05.10.2005. u 12:33 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3833
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: dump mysql tabele - kako?05.10.2005. u 20:23
Eh, tako je to kad si pocetnik u MySQL-u...
Naime, nesto sam uspeo (attach). Napravio sam class koji moze da dump-uje tabelu i da napravi SQL sintaksu. Napominjem da je ovo pravljeno samo za licne potrebe (moje, jel'te) pa posto ja obicno koristim prvo polje za id stavke koje je INT, auto_increment, a ostala TEXT/INT (u zavisnosti sta mi je potrebno), ovaj dump verovatno nece raditi na ostalim "tipovima" tabela... Evo primera tabele koju najopustenije moze da dump-uje:

Code:

CREATE TABLE `search` (
  `id` int(11) NOT NULL auto_increment,
  `body` text NOT NULL,
  `url` text NOT NULL,
  `title` text NOT NULL,
  `number` INT(11) NOT NULL, 
  PRIMARY KEY  (`id`)
);


Dakle, testirano je sa ovakvom tabelom - radilo je: polja tipa text, int (mada i ostala verovatno RADE), not null, auto increment, i primary key (ostale key-ove ne registruje, posto nisam radio sa njima).

I da, posto nikad ne stavljam "default" vrednost polja, to nisam obradio ovde, posto ne znam kako, tako da ovaj class ne obraca paznju na default polja.

U attachovanoj arhivi cete naci primer gde je kljucni red:
Code:

$backup->dump_table($table_name); //dump it to output (buffer)
echo htmlspecialchars($backup->output); //write output


dump_table u stvari poziva dve funkcije:
Code:

$this->output = "";
$this->get_table_structure($tablename);    
$this->list_values($tablename);

...ali pre toga brise trenutni buffer... dakle, onaj gore red (dump_table) ste mogli zameniti sa ova tri, samo umesto $this da stavite $backup.
Brisanje buffera se mora odraditi rucno jer sam ja zaboravio da stavim a sad me mrzi (hehe).
Zasto ovo govorim: Pa potrebno Vam je ako dumpujete npr. samo strukturu 10ak tabela (10ak je primer samo) jer onda ne mozete pozvati dump_table funkciju vec morate get_table_structure. Brisanje buffera (output) morate odraditi ako dumpujete vise tabela za redom... Ako dumpujete samo jednu, onda nije potrebno, ali nece nista smetati

Da ne smaram vise, pogledajte attachment.

P.S. Ah da, samo da kazem da ovaj class moze (a ne mora) da ispred dumpa strukture tabele (create table...) postavi drop table if exists (pogledajte primer)...

P.P.S. Pozivam svakoga ko moze i ume da mi pomogne da usavrsim dumpovanje strukture baze...
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Prikačeni fajlovi
05.10.2005. u 20:23 

[es] :: PHP :: dump mysql tabele - kako?

[ Pregleda: 587 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.