Pages : 1
#1 Le 23/05/2014, à 21:39
- TEXMAN
phpMyAdmin gzip import impossible
Bonjour,
sous PhpMyAdmin je n'arrive pas à importer de fichier gzippé:
Vous avez tenté d'importer un fichier dont le mode de compression (application/gzip) n'est pas supporté par votre configuration PHP ou est désactivé dans celle-ci.
config : ubuntu 14.04 LTS
Type de serveur: MySQL 5.5.37-0ubuntu0.14.04.1 - (Ubuntu)
phpMyAdmin:Version: 4.0.10deb1
j'ai trouvé cela:
Resolution
find /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/import.php
Locate function\_exists('gzopen') and replace 'gzopen' with 'gzopen64'. Resulting code should looks like this:
case 'application/gzip':
if ($cfg['GZipDump'] && @function_exists('gzopen64')) {
$import_handle = @gzopen64($import_file, 'r');
} else {Cause
Debian 6 x64 uses zlib1g instead of zlib by default. zlib1g has different function naming: gzopen64 instead of gzopen, gzseek64 instead of gzseek etc. Since phpMyAdmin uses hard-coded check function_exists('gzopen'), it will fail in such conditions.
effectivement un:
$php -r 'var_dump(function_exists("gzopen"));'
bool(false)
$ php -r 'var_dump(function_exists("gzopen64"));'
bool(true)
Mais lorsque je mets :
if ($cfg['GZipDump'] && @function_exists('gzopen64'))
dans
/usr/share/phpmyadmin/import.php
je n'ai plus d'erreur mais il ne se passe rien ...quelqu'un a-t-il une idée?
Hors ligne
#2 Le 25/05/2014, à 14:58
- TEXMAN
Re : phpMyAdmin gzip import impossible
up merci
Hors ligne
#3 Le 25/05/2014, à 15:24
- bruno
Re : phpMyAdmin gzip import impossible
Tu as une installation standard, avec les paquets officiels ? Architecture i386 ou amd64 ?
#4 Le 25/05/2014, à 15:26
- TEXMAN
Re : phpMyAdmin gzip import impossible
oui oui cf mon message 14.04 LTS
uname -a
Linux texier-usbhd 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:31:42 UTC 2014 i686 i686 i686 GNU/Linux
Dernière modification par TEXMAN (Le 25/05/2014, à 18:47)
Hors ligne
#5 Le 26/05/2014, à 21:57
- TEXMAN
Re : phpMyAdmin gzip import impossible
up et ???
Hors ligne
#6 Le 27/05/2014, à 07:38
- bruno
Re : phpMyAdmin gzip import impossible
Je posais la question car :
phpMyAdmin:Version: 4.0.10deb1
ne semble pas être un paquet officiel, et tu ne réponds pas complètement.
J'ai bien trouvé ce bug : https://bugs.php.net/bug.php?id=53829
mais cela m'étonne qu'il ne soit pas corrigé dans Debian/Ubuntu.
Sinon pour ton code, tu ne devrais pas aller modifier les fichiers internes de phpmyadmin. Entre autres parce que tes modifications seront perdues à la prochaine mise à jour du paquet… En plus rien ne te dis que la fonction standard gzopen n'est pas utilisée ailleurs dans le code de phpmyadmin (en fait, elle est utilisée à plusieurs endroits).
#7 Le 27/05/2014, à 09:23
- TEXMAN
Re : phpMyAdmin gzip import impossible
Oui je suis tombé sur le même bug...Tu me conseilles quoi ?
je desinstall et reinstall phpmyadmin?
d'ailleurs en relisant le bug c'est plutôt php qui est concerné?????
Dernière modification par TEXMAN (Le 27/05/2014, à 09:32)
Hors ligne
#8 Le 27/05/2014, à 10:41
- Pseudo supprimé
Re : phpMyAdmin gzip import impossible
Vous avez tenté d'importer un fichier dont le mode de compression (application/gzip) n'est pas supporté par votre configuration PHP ou est désactivé dans celle-ci.
Simple question, as-tu vérifié ?
php -c /etc/php5/apache2/php.ini -r 'phpinfo();' | grep gzip
gzip compression => enabled
grep -ri gz /etc/apache2/mods-enabled
/etc/apache2/mods-enabled/mime.conf:AddType application/x-gzip .gz .tgz
/etc/apache2/mods-enabled/autoindex.conf:AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip x-bzip2
/etc/apache2/mods-enabled/autoindex.conf:AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
/etc/apache2/mods-enabled/autoindex.conf:AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
#9 Le 27/05/2014, à 10:44
- bruno
Re : phpMyAdmin gzip import impossible
Ok je croyais ce bug corrigé depuis longtemps mais apparemment il est réapparu dans les paquets ubuntu 14.04 pour les architectures 32 bits (je n'ai pas ce bug sur une installation 64bits).
Les solutions de contournement que je vois (à part recompiler php) sont effectivement de remplacer les occurrences de gzopen par gzopen64 dans les scripts. C'est crade mais cela devrait marcher…
Pour ton code enlève les @ devant ta fonction pour voir les retours d'erreur :
$import_handle = gzopen64($import_file, 'r');
Si tu avais la possibilité de refaire ton installation en 64 bits ce serait quand même la meilleure solution…
Dernière modification par bruno (Le 27/05/2014, à 10:44)
#10 Le 27/05/2014, à 10:58
- Pseudo supprimé
Re : phpMyAdmin gzip import impossible
et franchement, pourquoi s'embêter avec phpmyadmin pour importer une bdd en gz ?!
autant utiliser mysql en ligne de commande...
#11 Le 27/05/2014, à 11:05
- bruno
Re : phpMyAdmin gzip import impossible
@Titouan : 100% d'accord PhpMyadmin c'est surtout utile sur un hébergement où l'on a pas la main sur les commandes mysql.
Cependant le bug dont on parle affecte certainement d'autres application PHP (CMS ou autres) car la fonction gzopen est assez largement utilisée.
J'aurais aussi pu dire à TEXMAN de recompresser ses fichiers en bz2
#12 Le 28/05/2014, à 10:50
- TEXMAN
Re : phpMyAdmin gzip import impossible
bon j'ai modifié comme indiqué dans le patch :
case 'application/gzip':
if ($cfg['GZipDump'] && @function_exists('gzopen64')) {
$import_handle = @gzopen64($import_file, 'r');
} else {
j'ai enlevé les @ et progrès... j'arrive à charger une table! après j'ai :
Erreur
Requête SQL: DocumentationModifier Modifier
SELECT `comment`
FROM `phpmyadmin`.`pma_column_info`
WHERE db_name = 'asptt2'
AND table_name = ''
AND column_name = '(db_comment)'
MySQL a répondu: Documentation
#1100 - Table 'pma_column_info' was not locked with LOCK TABLES
Bon effectivement la commande SQL que je mets pour ceux qui auraient le même problème:
gzip -c -d tasauvegarde.sql.gz | mysql -uTON_UTILISATEUR -pTON_MOT_DE_PASSE -D TA_BDD
marche a tous les coups...bz2...il faut que j'aille changer tous mes scripts de sauvegarde
Hors ligne
#13 Le 28/05/2014, à 11:23
- bruno
Re : phpMyAdmin gzip import impossible
Pour ton erreur je ne sais pas vraiment d'où cela vient… Es-tu connecté avec l'utilisateur root dans phpmyadmin ?
Pour les sauvegardes ce ne doit pas être si compliqué de chercher remplacer dans un script gzip par bzip2
#14 Le 28/05/2014, à 14:13
- TEXMAN
Re : phpMyAdmin gzip import impossible
j'y comprend vraiment rien :
-quand j'exporte et importe à partir de phpMyadmin en .gz pas de pb.
-quand je veux importer le .gz qui vient de mes sauvegardes de mon serveur j'ai ce code d'erreur! il me restaure une base et plouf il affiche le
Erreur!
#1100 - Table 'pma_column_info' was not locked with LOCK TABLES
???
Hors ligne
#15 Le 28/05/2014, à 14:54
- bruno
Re : phpMyAdmin gzip import impossible
Je suppose que l'exportation depuis phpmyadmin se fait sans l'option LOCK TABLES, alors que ton script l'utilise (il suffit de comparer les fichiers sql générés pour le vérifier).
Par contre je ne saurais pas te dire pourquoi phpmyadmin échoue à importer des bases avec LOCK TABLES. Je suppose que c'est un problème de droits et de configuration. C'est pourquoi je te demandais si tu faisais bien cela avec l'utilisateur root.
Tu peux toujours regarder dans phpmyadmin dans l'onglet « Privilèges » si ton utilisateur (celui avec le quel tu essaies d'importer) a bien le droit d'administration LOCK TABLES.
Dernière modification par bruno (Le 28/05/2014, à 14:55)
#16 Le 28/05/2014, à 23:17
- TEXMAN
Re : phpMyAdmin gzip import impossible
oui mon script utilise:
LOCK TABLES 'matable' WRITE;
je l'ai supprimé pour toutes les tables de ma base et effectivement mon insert me mets bien toutes mes tables.
par contre sur les privilèges je ne voit pas ce qu'il faut faire sur ma base j'ai ces privilèges:
Utilisateur Client Type Privilèges «Grant» Action
asptt_admin % global ALL PRIVILEGES Non Changer les privilèges Changer les privilèges
asptt_admin localhost global ALL PRIVILEGES Non Changer les privilèges Changer les privilèges
debian-sys-maint localhost global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root 127.0.0.1 global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root ::1 global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root localhost global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root texier-usbhd global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
sur phpmyadmin j'ai ceux la j'ai rajouté tous les privilèges à pma:
Utilisateur Client Type Privilèges «Grant» Action
asptt_admin % global ALL PRIVILEGES Non Changer les privilèges Changer les privilèges
asptt_admin localhost global ALL PRIVILEGES Non Changer les privilèges Changer les privilèges
debian-sys-maint localhost global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
pma localhost spécifique à cette base de données ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root 127.0.0.1 global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root ::1 global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root localhost global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
root texier-usbhd global ALL PRIVILEGES Oui Changer les privilèges Changer les privilèges
Hors ligne
Pages : 1