it-swarm-eu.dev

import velkého souboru SQL phpmyadmin

Snažím se importovat tento soubor SQL do phpmyadmin a dostal jsem tuto zprávu

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1

Co mám dělat, abych provedl tento import?

12
grant tailor

Za předpokladu, že nelze dále zvětšit velikost paměti, existuje několik možností.

  • Pokud nejste obeznámeni s příkazovým řádkem a opravdu se chcete držet importu stylu GUI, můžete použít BigDump ( http://www.ozerov.de/bigdump/ ). Použil jsem to jednou, ale už nějakou dobu. Z toho, co si pamatuji, stáhnete soubor s názvem bigdump.php (s některými pokyny) a umístíte jej na svůj webový server do adresáře s MySQL DB dump souborem, který je příliš velký na import přes PHPMYADMIN. Poté k němu přejděte pomocí prohlížeče - něco jako http://your-website.com/bigdump.php .

  • Pokud znáte příkazový řádek a používáte systém založený na systému Linux, můžete použít tento kód:

    mysql -u USERNAME -p DATABASENAME <FILENAME.sql

Databáze a uživatel (s oprávněními k databázi) však musí před spuštěním tohoto příkazu existovat. Poznámka: Výše ​​uvedený příkaz jsem zkopíroval z jiného zdroje. Vždycky dělám své skládky a obnovuji se takto: DUMP: mysqldump -u DB_USER -h DB_Host -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz OBNOVENÍ: gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME

  • Nakonec a nejbolestivěji byste se mohli rozhodnout vyhodit jednotlivé tabulky nebo skupiny tabulek na dost malé výpisy. Poté obnovte tyto jednotlivé výpisy najednou pomocí PHPMYADMIN.

Pokyny FTP a RESTORE:

Stáhněte si FileZilla zde: http://filezilla-project.org/download.php?type=client

Obvykle můžete FTP do svého serveru (zejména sdíleného hostitele) používat se stejným přihlašovacím jménem a heslem, jaké byste použili pro SSH (přihlášení pomocí příkazového řádku). Ujistěte se, že je v FileZilla správně nastaveno připojení k serveru.

Po připojení bude vaše výchozí cesta pravděpodobně složkou $ HOME (na počítačích nix). Pokud neplánujete dělat hodně FTPingů, vypusťte to, co tam chcete. Vždy ji můžete přesunout z příkazového řádku.

Pokud byste FTP do MySQL Dump vložili do své složky $ HOME, příkaz RESTORE pro DB s názvem mydb a dump soubor s názvem mydb.sql.gz (ve složce $ HOME) by byl:

gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb

kde byste samozřejmě potřebovali změnit hodnoty DB_USER a DB_PASSWORD na jaké uživatele a heslo, které pro DB nastavíte.

Pamatovat:

  • DB musí již existovat (ale být prázdný) před provedením příkazu RESTORE
  • DB_USER a DB_PASSWORD musí být nastaveny pro DB před příkazem RESTORE (můžete to provést z PHPMYADMIN - karta Oprávnění)
  • Když nastavíte DB_USER z PHPMYADMIN, bude výchozí povoleno pouze DB_USER přístup k DB z localhost (server, na kterém je hostitelem DB). Předpokládám, že je to v pořádku pro vaši situaci. Když se dostanete do pokročilejších DUMP a RESTOREs, možná budete chtít udělat z jiného počítače, což není těžké, ale vyžaduje několik dalších informací a DB_USER s příslušnými oprávněními.

FTP DB a OBNOVENÍ ... Krok za krokem

  1. Vyhledejte na své ploše soubor výpisu MySQL na zip (Příklad: C:\Web\DB\Dumps\mydb.sql.Zip)
  2. Stáhněte a nainstalujte FileZilla
  3. V FileZilla jděte do File-> Site Manager a klikněte na tlačítko New Site (levý dolní kvadrant GUI). Nastavte hostitele na doménu (příklad: dest.com) nacházející se na vašem serveru DESTINATION. Nastavte protokol na FTP nebo SFTP (záleží na vašem hostování, zeptejte se jich). Nastavte User and Password (Příklad: User = grant, Password = heslo grantu) - pokud je protokol FTP SFTP, měla by fungovat jakákoli sada platných přihlašovacích údajů SSH.
  4. (V FileZilla) Klikněte na Připojit (tlačítko vlevo dole vlevo)
  5. (V FileZilla) Po připojení ke vzdálenému serveru (měl by to být váš server DESTINATION) použijte levou stranu FileZilla k navigaci do adresáře, kde se nachází soubor výpisu, který se nachází v Kroku 1. (Cesta k místnímu počítači je zcela vlevo, asi na půl cesty a je označena jako Local site :. V našem příkladu by textové pole vedle Local site: přečetlo C:\Web\DB\Dumps.)
  6. (V FileZilla) Vyhledejte vzdálený web: štítek přímo napravo od místního serveru :.
  7. (V FileZilla) Neexistuje žádný technický důvod, proč nemůžete umístit DB DUMP do složky, do které se FileZilla otevře. Pravděpodobně bude výchozí ve vašem adresáři $ HOME. Pokud nemáte žádný důvod umístit výpis DB do konkrétního adresáře - například pro vlastní organizační účely -, ponechte cestu na vzdáleném webu samotném. Zapište si tuto cestu (příklad systému Linux:/usr/grant).
  8. (V FileZilla) Vyhledejte soubor na místním počítači v levé polovině FileZilla těsně pod stromem zobrazeným pod místním webem: štítek, který jste našli v kroku 5. Poklepejte na tento soubor a FileZilla jej FTP na váš vzdálený web.
  9. V rámci PHPMYADMIN na serveru DESTINATION vytvořte novou databázi (do textového pole Vytvořit novou databázi zadejte mydb a klikněte na tlačítko Vytvořit).
  10. (V PHPMYADMIN) Vyberte mydb z nabídky vlevo.
  11. (V PHPMYADMIN) Klikněte na záložku Privileges (vpravo nahoře). Na této stránce klikněte na Přidat nového uživatele.
  12. (V PHPMYADMIN-> Oprávnění-> Přidat nového uživatele) Zadejte uživatelské jméno (Příklad: mydb_grant) a heslo (Příklad: mydb_password). V rozevírací nabídce Host vyberte Local. Ujistěte se, že je vybrána možnost „Udělit všechna oprávnění v databázi“. Poté klikněte na tlačítko Přejít (vpravo dole na obrazovce).
  13. SSH na váš DESTINATION server.
  14. (Ve vašem terminálu SSH) Přejděte do adresáře, který jste si zapsali v kroku 7. Pomocí příkazu jako - cd $HOME nebo cd /usr/grant. (Na počítačích se systémem Linux je $ HOME proměnnou prostředí, která se bude rovnat něčemu jako/usr/grant.)
  15. (Ve vašem terminálu SSH) Proveďte následující příkaz: gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb (mezi -p a heslem není mezera, protože to je způsob, jakým musí být, to není překlep).

Po dokončení posledního příkazu byla vaše databáze obnovena. Nedoporučuji používat uživatele DB a heslo, které jsem poskytl, jednoduše je nahradit bezpečnějšími vlastními volbami.

DUMP a RESTORE na různých serverech bez FTP

Pokud si přejete přeskočit věci FTP a nevadí vám opakování DUMP, můžete to udělat takto:

  1. Přihlaste se na server DESTINATION (na kterém chcete umístit databázi - nazýváme ji destination.com)
  2. Vytvořte DB, User a správná oprávnění, jak je uvedeno výše na serveru DESTINATION
  3. Ujistěte se, že oprávnění na serveru SOURCE umožňují, aby SOURCE_DB_USER přistupoval k databázi vzdáleně - buď povolte přístup z dest.com nebo z% (% - všichni a všude, pokud mají správné uživatelské jméno a heslo)
  4. Na serveru DESTINATION spusťte: mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz kde source.com je server SOURCE (kde je databáze aktuálně umístěna)
  5. Poté (na serveru DESTINATION) spusťte: gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb

To by mělo být vše, co musíte udělat pro přesun DB z jednoho serveru na druhý. Upozornění je, že jsem to udělal jen na svých vlastních dedikovaných serverech Ubuntu (se standardním LAMP) a serverech VPS Dreamhost (u kterých věřím, že provozuji CentOS, ale mohl bych se mýlit).

12
gabe

Můžeš:

  • zvýšit memory_limit
  • zvýšit post_max_size
  • zvýšit max_execution_time
  • musí po restartování Apache restartovat.
  • nebo použijte Big Dump
3
Salman

Je váš soubor SQL komprimovaný? Měl jsem tento problém se souborem sql se zipem 6 MB. Dekomprimoval jsem to do 53MB nekomprimovaného souboru sql a fungovalo to. Rozbalení probíhajícího souboru výpisu musí zabrat veškerou paměť.

1
Jeremy

pokud je velikost databáze větší než 128 MB, rozdělte databázi na části.

Použijte software SQL Dump Splitter

SQL Dump Splitter je 430 KB aplikace, která poskytuje úplnou kontrolu nad rozdělením obrovských databází na menší soubory SQL s lehkostí. S SQL Dump Splitter můžete:

  • Vyberte velikost každého kusu
  • Výběr přeskočit komentáře (dokonce zmenšit velikost DB)
  • Automatizujte činnost.
0
Sumit Bijvani

pokud máte ssh přístup na server s mysql, než byste mohli umístit soubor s výpisem mysql na nějaké místo, zadejte konzolu mysql:

mysql -u myUser myDatabase

Nebo pokud je server mysql na jiném místě než localhost a umožňuje připojení nejen z localhost než:

mysql -u myUser -h mysql.example.com myDatabase

Poté budete požádáni o heslo pro uživatele mysql. Nyní jste v konzole mysql. Zde můžete napsat

source ~/mydump.sql;

Uvidíte, jak budou prováděny příkazy z vašeho výpisu.

V této metodě vám záleží na omezeních paměti php.

0
yas375