En supposant que vous ne pouvez pas augmenter davantage la taille de la mémoire, il existe plusieurs options.
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 à l'aide de 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
RESTORE:gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME
- Enfin, et le plus douloureusement, vous pouvez choisir de vider des tables individuelles ou des groupes de tables dans des vidages suffisamment petits. Restaurez ensuite ces vidages individuels un par un via PHPMYADMIN.
Instructions FTP & RESTORE:
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 devrez évidemment 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:
- La base de données doit déjà exister (mais être vide) avant l'exécution de la commande RESTORE
- DB_USER et DB_PASSWORD doivent être configurés pour la base de données avant la commande RESTORE (vous pouvez le faire depuis PHPMYADMIN - onglet Privilèges)
- Lorsque vous configurez DB_USER à partir de PHPMYADMIN, il autorisera par défaut uniquement DB_USER à accéder à la base de données depuis l'hôte local (le serveur sur lequel la base de données est hébergée). Je suppose que c'est bien pour votre subvention de situation. Lorsque vous entrez dans des DUMP et des RESTORE plus avancés, vous pouvez le faire à partir d'une autre machine, ce qui n'est pas difficile mais nécessite quelques informations supplémentaires et DB_USER avec les privilèges appropriés.
FTP la base de données et la restaurer ... étape par étape
- Localisez le fichier de vidage MySQL compressé sur votre bureau (exemple: C: \ Web \ DB \ Dumps \ mydb.sql.zip)
- Téléchargez et installez FileZilla
- Dans FileZilla, allez dans Fichier-> Gestionnaire de site et cliquez sur le bouton Nouveau site (quadrant inférieur gauche de l'interface graphique). Définissez l'hôte sur un domaine (exemple: dest.com) qui réside sur votre serveur DESTINATION. Réglez le protocole sur FTP ou SFTP (cela dépend de votre hébergement, demandez-leur). Définissez l'utilisateur et le mot de passe (exemple: utilisateur = octroi, mot de passe = mot de passe de l'octroi) - si le protocole FTP est SFTP, alors tout ensemble d'informations d'identification de connexion SSH valides devrait fonctionner.
- (Dans FileZilla) Cliquez sur Connecter (bouton le plus à gauche en bas)
- (Dans FileZilla) Une fois connecté au serveur distant (devrait être votre serveur DESTINATION), utilisez le côté gauche de FileZilla pour accéder au répertoire où se trouve le fichier de vidage que vous avez localisé à l'étape 1. (Le chemin de la machine locale est à l'extrême gauche, à mi-chemin environ et il est intitulé Site local:. Dans notre exemple, la zone de texte à côté de Site local: lirait C: \ Web \ DB \ Dumps.)
- (Dans FileZilla) Localisez le site distant: étiquette directement à droite du site local:.
- (Dans FileZilla) Il n'y a aucune raison technique pour laquelle vous ne pouvez pas placer le DB DUMP dans le dossier auquel FileZilla s'ouvre. Il sera probablement par défaut dans votre répertoire $ HOME. Si vous n'avez aucune raison de placer le vidage de la base de données dans un répertoire spécifique, par exemple pour vos propres besoins organisationnels, laissez le chemin sur le site distant seul. Notez ce chemin (exemple Linux: / usr / grant).
- (Dans FileZilla) Localisez le fichier sur votre ordinateur local dans la moitié gauche de FileZilla juste sous l'arborescence affichée sous le site local: étiquette que vous avez trouvée à l'étape 5. Double-cliquez sur ce fichier et FileZilla le FTP sur votre site distant.
- Dans PHPMYADMIN sur votre serveur DESTINATION, créez une nouvelle base de données (tapez mydb dans la zone de texte Créer une nouvelle base de données et cliquez sur le bouton Créer).
- (Dans PHPMYADMIN) Choisissez mydb dans le menu de gauche.
- (Dans PHPMYADMIN) Cliquez sur l'onglet Privilèges (en haut à droite). Une fois sur cette page, cliquez sur Ajouter un nouvel utilisateur.
- (Dans PHPMYADMIN-> Privilèges-> Ajouter un nouvel utilisateur) Fournissez un nom d'utilisateur (exemple: mydb_grant) et un mot de passe (exemple: mydb_password). Dans la liste déroulante Hôte, choisissez Local. Assurez-vous que le bouton radio à côté de «Accorder tous les privilèges sur la base de données» est sélectionné. Cliquez ensuite sur Aller (en bas à droite de l'écran).
- SSH dans votre serveur DESTINATION.
- (Dans votre terminal SSH) Accédez au répertoire que vous avez noté à l'étape 7. En utilisant une commande comme -
cd $HOME
ou cd /usr/grant
. (Sur les machines Linux, $ HOME est une variable d'environnement qui équivaudra à quelque chose comme / usr / grant.)
- (Dans votre terminal SSH) Exécutez la commande suivante:
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.
DUMP et RESTORE sur différents serveurs sans FTP
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:
- Connectez-vous au serveur DESTINATION (où vous souhaitez que la base de données réside - nous l'appellerons destination.com)
- Créez la base de données, l'utilisateur et les privilèges appropriés comme mentionné ci-dessus sur le serveur DESTINATION
- Assurez-vous que les privilèges sur le serveur SOURCE permettent à SOURCE_DB_USER d'accéder à la base de données à distance - autorisez l'accès à partir de dest.com ou à partir de% (% - tout le monde et partout s'ils ont le bon nom d'utilisateur et mot de passe)
- Sur le serveur DESTINATION, exécutez:
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)
- Puis (sur le serveur DESTINATION) exécutez:
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).