MAMP + changer parametre de Mysqld

perlgirl

Membre enregistré
13 Décembre 2005
8
1
Bonjour :)

J'aimerai savoir comment proceder pour changer la valeur du parametre max_allowed_packet qui est par defaut a 1Mo sous MAMP.
Il s'agit d'un parametre du serveur mysqld mais je ne trouve pas de fichier ou je peux changer ses parametres et je n'arrive pas a le faire en ligne de commande :hein: .

Je possede un mac Os x 10.3.7.

Merci de votre aide ;)
 

Marc-André

Membre actif
24 Juillet 2003
559
17
45
Ottawa
perlgirl a dit:
Bonjour :)

J'aimerai savoir comment proceder pour changer la valeur du parametre max_allowed_packet qui est par defaut a 1Mo sous MAMP.
Il s'agit d'un parametre du serveur mysqld mais je ne trouve pas de fichier ou je peux changer ses parametres et je n'arrive pas a le faire en ligne de commande :hein: .

Je possede un mac Os x 10.3.7.

Merci de votre aide ;)
Directement du site de MySQL...
Pour spécifier la variable max_allowed_packet de mysql, à une valeur de 16Mo, utilisez l'une de ces deux commandes :

shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M

C'est écrit juste ici....

;)

Marc-André
 

perlgirl

Membre enregistré
13 Décembre 2005
8
1
Coucou :)

Je viens d'essayer de taper la commande donné dans le dernier post mais cela m'affiche :
Bloc de code:
-bash: mysql: commande not found

Il faut se placer dans un repertoire particulier pourlancer cette commande, est ce qu'il faut que le serveur mysql soit lancé?? (de toute maniere j'ai essayé dans les 2 cas...).

Perlgirl
 

Marc-André

Membre actif
24 Juillet 2003
559
17
45
Ottawa
Coucou ;) :D

Oui tu dois être dans mysql:
cd /usr/local/bin

./mysql -u root -p

ensuite lancer la commande
mysqld --max_allowed_packet=16M

Le tout devrait fonctionner si ça ne fonctionne pas tu peux toujours utiliser une variable dans tes pages php pour les paquets un truc du genre:

$pacquet = mysql_query("SET GLOBAL max_allowed_packet=16M");
if ($pacquet!=FALSE) echo "Can not increase packet size";

Bonne chance
:)


Marc-André
 

perlgirl

Membre enregistré
13 Décembre 2005
8
1
Merci pour ta reponse, j'ai donc pu me connecter en ligne de commande a MySQL et tenté d'executer l'une des commandes suivantes :
Bloc de code:
mysql --max_allowed_packet=16M;
OU
Bloc de code:
mysqld --max_allowed_packet=16M;

mais ca m'affiche l'erreur suivante :

Bloc de code:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL servers version for the right syntax to use near 'mysql --max_allowed_packet=16M'

Donc après j'ai cherché les fichiers .cnf ou j'ai egalement changé la valeur de la variable mais quand je regarde les variables du serveurs dans phpmyadmin ou en faisant "SHOW VARIABLES" la valeur de max_allowed_packet est toujours inchangée
icon_cry.gif
.
J'ai bien entendu redemarré les serveurs avant de regarder.


Pourquoi?????????:siffle:


:) Perlgirl:)
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
un petit update de ta machine et de ton MAMP ne serait il pas bienvenue?:)
Enfin je suis sur 10.4 derniere update et ca fonctionne:up:
 

perlgirl

Membre enregistré
13 Décembre 2005
8
1
Tu as quelle version de MAMP???
Et ca marche en changeant la variable dans un fichier ou en ligne de commande?

:) Perlgirl:)
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
j'ai la version 1.0.1.
En ce qui concerne mon Tiger c'est 10.4.3

Je vais essayer les lignes de commandes ce soir et je te donnerais une réponse demain des 8h00.Je n'est pas acces a mon mac pour le moment vu que je suis en stage dans une entreprise ( sous windows:eek::eek:).
Alors si tu as la patience!!!:up:
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
bon ben je note toutes ces commandes sur un bout de papier ( et oui ca se fait encore) et je les teste en rentrant ce soir.
Et pis jte tiens au courant demain a 8H00
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
juste comme ca essaye de faire :

Bloc de code:
mysqld--max_allowed_packet=16M


Au lieu de :

Bloc de code:
mysqld--max_allowed_packet=16M;

La différence?...LE point virgule.
 

perlgirl

Membre enregistré
13 Décembre 2005
8
1
Alors j'ai essayé en ligne de commande (dans le bash)
Bloc de code:
mysql --max_allowed_packet=16M;
ou
Bloc de code:
mysqld --max_allowed_packet=16M;
ou
Bloc de code:
mysql --max-allowed-packet=16M;
ou
Bloc de code:
mysqld --max-allowed-packet=16M;
toujours la meme erreur renvoyée
Bloc de code:
-bash: mysql: command not found
Ensuite je me suis placée dans le répertoir bin de mysql et j'ai tapé
Bloc de code:
./mysql -u root -p
Je me retrouve connecté à mysql et j'ai essayé
Bloc de code:
mysql> mysql --max_allowed_packet=16M;
ou
Bloc de code:
mysql> mysqld --max_allowed_packet=16M;
ou
Bloc de code:
mysql> mysql --max-allowed-packet=16M;
ou
Bloc de code:
mysql> mysqld --max-allowed-packet=16M;
toujours la meme erreur renvoyée
Bloc de code:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL servers version for the right syntax to use near 'mysql --max_allowed_packet=16M'
J'ai ensuite essayé
Bloc de code:
SET GLOBAL max_allowed_packet = 16 * 1024 * 1024;
ou
Bloc de code:
SET GLOBAL max_allowed_packet = 16777216;
et ca renvoi
Bloc de code:
Query OK, 0 rows affected (0.00 sec)
et j'ai vérifié la variable max_allowed_packet n'a toujours pas bougée.
Dans le doute j'ai aussi tapé
Bloc de code:
SET GLOBAL max-allowed-packet = 16 * 1024 * 1024;
mais la ca renvoi une erreur
Bloc de code:
ERROR 1193 (HY000): Unknown system variable 'max'
:cry: :cry: rien ne marche :cry: :cry:
Petite précision (je ne sais pas si ca a une importance): j'utilise MAMP donc mysql n'est pas dans le répertoire local(/usr/local/bin)
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
si c'est sans doute important.Est ce quetu as essayer sans le point virgule a la fin?Car je vois que tu en met a chaque fois..
Ca n'a peut etre rien a voir mais j'ai passer un jolie moment pour des conneries comme ca desfois...
En fait c'est pour quoi faire? ( si c'est pas indiscret...:siffle:)
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
bon ben en effet ca ne marche pas.Je n'ai pas trouvé comment faire meme dans les dossiers de MAMP...Et j'ai cherché un moment pourtant.
Alors le premier qui trouve previent les autres.:up::love:
 

fissunix

Membre actif
12 Avril 2004
290
17
38
Fribourg (CH)
www.contesse.ch
.Steff a dit:
bon ben en effet ca ne marche pas.Je n'ai pas trouvé comment faire meme dans les dossiers de MAMP...Et j'ai cherché un moment pourtant.
Alors le premier qui trouve previent les autres.:up::love:


Est-ce que tu as essayé ça (en étant dans le répertoire "bin" de MySQL, chez moi "/usr/local/mysql/bin" :

Bloc de code:
./mysql -u root -p --max_allowed_packet=16M
 

.Steff

Membre expert
Club MacG
6 Septembre 2005
1 294
104
oui mais le pb est pour mamp!! Et la on a beau faire ce qu'on veut je pense que ca ne marche pasa partir de ce fichier.
 

Marc-André

Membre actif
24 Juillet 2003
559
17
45
Ottawa
Peut-être que le problème n'est pas la commande que tu essai de passer peut-être ton installation est défectueuse..., pourrions nous savoir avec quelle version de MySQL fonctionne-tu?
:confused:

La commande que je t'ai donné fonctionne avec la version 4.3.4 et 5.0

pour les version antérieur il faut faire:
mysql --set-variable=max_allowed_packet=16M

Et peut-être pourrais-tu tenter d'utiliser cette commande durant l'exécution de ta requête comme je t'ai montré un peu plus haut dans le fil. :p


En ce moment elle est à combien ta variable? le défaut est 8M si je me rappel bien

Sur ma machine j'ai MySQL 5.0.16 et je peux exécuter cette commande sans problème.
Je n'ai pas tenté de l'exécuter sur mes serveurs puisque je n'ai pas encore fait l'update à la version 5 j'attends après janvier c'est quand même un gros update je veux être certain que mes BD ne me lâcheront pas :D

Marc-André
 

perlgirl

Membre enregistré
13 Décembre 2005
8
1
:) Coucou,

Apres un laps de temps, j'ai reussi a trouver la solution a mon probleme et je viens donc vous en faire part...

La seule commande qui marche avec MAMP est la suivante, mais le problème était qu'a chaque redemarrage des serveurs apache et mysql il fallait retaper cette ligne de commande pour remodifier la valeur de max_allowed_packet.

Bloc de code:
[LEFT]SET GLOBAL max_allowed_packet = 16777216;[/LEFT]

J'ai donc ajouté cette ligne de commande dans mon script php qui permet l'insertion des données dans ma base de données et ca marche :up:

Bloc de code:
$pacquet = mysql_query("SET GLOBAL max_allowed_packet=16M");

Merci pour votre aide et bonne année :love:

:) Perlgirl:)
 
  • J’aime
Réactions: .Steff

Marc-André

Membre actif
24 Juillet 2003
559
17
45
Ottawa
.Steff a dit:
félicitations.C'est bon a savoir en plus
Bonne Année a toi!!!

Ça prends une énorme requête pour devoir doubler le défaut. Peut-être que au départ faudrait voir a simplifier la requête... Jointures inutiles, Indexation sont tous des facteurs que l'on doit tenir compte.

Bon à savoir, peut-être... mais je crois le problème n'était pas vraiment un problème puisque le tout fonctionne bien avec mysql, MAMP étant d'ordre secondaire...


Bonne année tout de même :D

Marc-André