Bonjour,

Je viens de débuter dans l'apprentissage de mysql. Je travaille sur Mac et j'ai MAMP Pro d'installer dessus.
J'ai créé 2-3 bases de donner dans le socket par défaut de MAMP, mais je souhaiterais en créer un autre et l'enregistre dans un emplacement personnel dans mon disque.

J'ai vu qu'il fallait changer des infos dans le my.cnf. Mais même si je veux dupliquer les sockets pour les mettre la ou je veux (sans supprimer ceux d'origine!) c'est impossible, car les documents mysql.sock n'existent pas Smiley ohwell

En gros je voudrais créer un autre socket, mais je ne comprends pas comment créer un document .sock. Ni même si c'est bien ce document qui contient mes bases...

Quelqu'un pourrait me donner un petit début d'indice? Car, je me sans bien perdu !
Modérateur
Bonjour, tout d'abord on ne «stocke» pas de base de donnée dans un socket. Un socket est juste une interface pour servir la base de donnée.

Dans Mamp Pro les bases de données sont stockées là:

/Library/Application Support/appsolute/MAMP PRO/db/mysql56

Par contre pour faire ce que tu souhaites, il faudrait lancer plusieurs instances de mysql, ce que MAMP ne gère pas.
Pour rappel MAMP est un système préconfiguré pour du développement. Pour faire de la configuration très avancée, mieux vaut installer mysql «à la main»

On pourrait éventuellement tricher avec des liens symboliques, mais…

Je ne suis pas sûr que ce besoin soit pertinent. Pour quelle raison essaie-tu de faire cela, car ce n'est pas commun, particulièrement pour quelqu'un qui vient de découvrir les base de données?
Bonjour,

Merci pour la réponse qui m’a permis de voir un petit peu mieux Smiley smile

En réalité c’est plus par curiosité. Pour comprendre comment les fichiers et les données fonctionnent. Je voulais créer une base de données en plus, où j’aurais mis mes exercices et toute autre chose en lien avec mon apprentissage. Tout en laissant celle par défaut afin de travaille mes acquis, dans des petits projets personnels.

Dans mes compilations d’app, je sais que telle ou telle donnée se trouve dans tel fichier. Du coup, je voulais « avoir le contrôle » du stockage des données en dehors de ce que je vois sur l’interface. Smiley smile

Comment on appelle l’emplacement qui contient les bases de données si le socket est simplement une interface?
Modifié par Spyrakos (02 Nov 2017 - 11:47)
Modérateur
Spyrakos a écrit :
Comment on appelle l’emplacement qui contient les bases de données si le socket est simplement une interface?

Un dossier?

De manière générale on ne package pas les donnée de la base de donnée avec le reste de l'application. Dans un environnement pro, la base de donnée sera sur son propre serveur. C'est même le principe de la base de donnée: elle est faite pour servir plusieurs applications. Du coup le but est justement pas d'en avoir le contrôle mais bien de les séparer de l'application.

Lorsque l'on souhaite transmettre le contenu de la base de donnée, que ce soit pour un changement d'environnement (serveur local > distant, test > production), pour fournir à un collègue ou pour sauvegarde, on utilise des dumps. Ces dumps sont en SQL et peuvent permettre de recréer la base de donnée dans un autre environnement.
On peut les créer grâce à l'interface de phpmyadmin (exporter) ou par ligne de commande (commandes mysqldump et mysql disponibles avec MAMP dans /Applications/MAMP/Library/bin/mysql et /Applications/MAMP/Library/bin/mysqldump)
Meilleure solution