J'essaie d'importer ce fichier SQL dans phpmyadmin et j'ai reçu ce message
#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
Que dois-je faire pour effectuer cette importation?
Si vous n'êtes pas familier avec la ligne de commande et que vous voulez vraiment vous en tenir à une importation de style GUI, vous pouvez utiliser BigDump ( http://www.ozerov.de/bigdump/ ). Je l'ai utilisé une fois mais ça fait longtemps. D'après ce dont je me souviens, vous téléchargerez un fichier nommé bigdump.php (avec quelques instructions) et le placerez sur votre serveur Web dans le répertoire avec le fichier de vidage de la base de données MySQL qui est trop volumineux pour être importé via PHPMYADMIN. Ensuite, accédez-y en utilisant votre navigateur - quelque chose comme http://your-website.com/bigdump.php .
Si vous connaissez la ligne de commande et utilisez un système basé sur Linux, vous pouvez utiliser du code comme celui-ci:
mysql -u USERNAME -p DATABASENAME <FILENAME.sql
La base de données et l'utilisateur (avec des privilèges sur la base de données) devront cependant exister avant d'exécuter cette commande. Remarque J'ai copié la commande ci-dessus à partir d'une autre source. Je fais toujours mes vidages et restaurations comme ceci: DUMP: mysqldump -u DB_USER -h DB_Host -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz
RESTAURER: gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME
Téléchargez FileZilla ici: http://filezilla-project.org/download.php?type=client
En règle générale, vous pouvez FTP sur votre serveur (en particulier un hôte partagé) en utilisant les mêmes identifiant et mot de passe que pour SSH (vous vous connectez en ligne de commande). Assurez-vous simplement de configurer correctement la connexion à votre serveur dans FileZilla.
Une fois connecté, votre chemin par défaut sera probablement votre dossier $ HOME (sur les machines nix). Si vous ne prévoyez pas de faire beaucoup de FTP, jetez simplement ce que vous voulez là-dedans. Vous pouvez toujours le déplacer depuis la ligne de commande.
Si vous transférez par FTP un vidage MySQL dans votre dossier $ HOME, la commande RESTORE pour une base de données nommée mydb et un fichier de vidage db nommé mydb.sql.gz (dans le dossier $ HOME) serait:
gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb
où vous auriez évidemment besoin de changer les valeurs DB_USER et DB_PASSWORD en quel utilisateur et mot de passe vous avez configuré pour la base de données.
Rappelles toi:
cd $HOME
ou cd /usr/grant
. (Sur les machines Linux, $ HOME est une variable d'environnement qui équivaudra à quelque chose comme/usr/grant.)gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb
(il n'y a pas d'espace entre -p et le mot de passe car c'est ainsi qu'il doit être, ce n'est pas une faute de frappe).Une fois cette dernière commande terminée, votre base de données a été restaurée. Je ne recommande pas d'utiliser l'utilisateur DB et le mot de passe que j'ai fournis, remplacez-les simplement par des choix plus sécuritaires.
Si vous souhaitez ignorer le contenu FTP et que cela ne vous dérange pas de refaire le DUMP, vous pouvez le faire de cette façon:
mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz
où source.com est le serveur SOURCE (où réside actuellement la base de données)gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb
Cela devrait être tout ce que vous devez faire pour déplacer la base de données d'un serveur à un autre. Les mises en garde sont que je ne l'ai fait que sur mon propre Ubuntu dédié (avec LAMP standard) et les serveurs VPS de Dreamhost (qui je crois exécutent CentOS mais je peux me tromper).
Vous pouvez:
memory_limit
post_max_size
max_execution_time
Votre fichier SQL est-il compressé? J'ai eu ce problème avec un fichier sql zippé de 6 Mo. Je l'ai décompressé dans un fichier sql non compressé de 53 Mo et cela a fonctionné. La décompression du fichier de vidage en cours doit consommer toute la mémoire.
si la taille de votre base de données dépasse 128 Mo, divisez votre base de données en plusieurs parties.
Utiliser SQL Dump Splitter logiciel
SQL Dump Splitter est une application de 430 Ko qui donne un contrôle total sur le fractionnement d'énormes bases de données en fichiers SQL plus petits en toute simplicité. Avec SQL Dump Splitter, vous pouvez:
si vous avez un accès ssh au serveur avec mysql, vous pouvez placer un fichier avec le vidage mysql à un endroit, entrez dans la console mysql:
mysql -u myUser myDatabase
Ou si le serveur mysql est sur un emplacement autre que localhost et autorise les connexions non seulement à partir de localhost:
mysql -u myUser -h mysql.example.com myDatabase
Ensuite, il vous sera demandé un mot de passe pour votre utilisateur mysql. Maintenant, vous dans la console mysql. Ici, vous pouvez taper
source ~/mydump.sql;
Vous verrez comment les commandes de votre vidage seront exécutées.
Dans cette méthode, vous ne vous souciez pas des limites de la mémoire php.