12
votes

Est-il possible d'utiliser la même base de données MySQL sur Windows (XAMPP) et Linux (lampe)?

J'ai le mode de démarrage double avec Windows 7 et Ubuntu 10.

sur Windows 7 J'ai installé XAMPP, sur Linux J'ai installé de la lampe.
est-il possible de forcer les serveurs MySQL DB installés sur différents systèmes d'exploitation (même s'ils seraient de versions identiques, ils sont différents) à utiliser les mêmes fichiers physiques? < / p>

Donc en mode Dual Boot, indépendamment du fait que j'ai dirigé un autre système d'exploitation, je pourrais utiliser les mêmes données physiques. Parfois, j'aimerais changer de système d'exploitation mais ce serait génial de pouvoir utiliser les mêmes bases de données.


7 commentaires

Question interessante. En théorie, ce devrait travail - le format de fichier sous-jacent est censé être identique. Je ne suis pas tout à fait à l'aise avec l'idée, cependant. Intéressé à voir ce qui vient


"Sans aucun programme qui peut ralentir mon travail - Google Talk, ICQ, par exemple" --- Pourquoi ne pas le gérer? ;-)


Salut. Avez-vous trouvé la réponse? Est-ce que ça marche? J'ai besoin de la même chose. Si vous avez trouvé la réponse - veuillez accepter (si c'est parmi les réponses déjà données) elle ou postez votre propre.


trouvé ceci: irisofonline.com/... va essayer moi-même. implique des liens symboliques ... il semble donc logique.


Voir ma vaste solution similaire ici: Unix.stackexchange.com/questions/170751/... in Unix & Linux Stackexchange.


@Ivan: Je suis désolé, mais à l'époque, je ne pouvais pas le résoudre, mais depuis lors, je ne l'ai pas encore essayé, mais je ferai certainement dès que j'ai le temps de mettre à nouveau le temps de mettre à nouveau le mode de démarrage (peut-être sur un Vm). Avez-vous pu le faire fonctionner?


@Ellipticalview: merci! Votre réponse semble très prometteuse, je vais certainement vérifier cela!


5 Réponses :


5
votes

dans votre my.ini (sous Windows Il est situé quelque part comme C: \ Program Files \ mysql \ mysql Server 5.1 . C'est le fichier de configuration principal du fichier MySQL) , vous devriez avoir cette ligne:

datadir = "c: / programdata / mysql / mysql serveur 5.1 / Data /" par exemple

Modifiez-le dans Windows et Linux Ubuntu pour pointer vers un seul dossier physique (sur une partition avec un système de fichiers que Windows pourrait reconnaître). Ça va marcher. Les formats de fichier sont identiques.

Que vous démarrez de Ubuntu, ou de Windows 7, cela ne comportera pas, 2 constructions différentes de MySQL rechercheront des données au même endroit. Une fois que les données modifiées dans l'environnement Windows, vous démarrez à partir d'Ubuntu et les données sont là, modifiées.


2 commentaires

Si vous utilisez des tables InnoDB dans votre DB, plus de plaisir se poursuit. Dans mon cas, j'ai besoin de supprimer les fichiers ib_logfile0 et ib_logfile1 à partir du répertoire de données MySQL à chaque fois avant le démarrage du serveur MySQL. Les logfiles sont recréés sur le démarrage du serveur. Vous pouvez l'automatiser à l'aide de scripts. Soyez prudent lorsque vous essayez cela - faites des sauvegardes de tous les fichiers modifiés / supprimés!


Je ne sais pas si cela est dû à InnoDB ou à autre chose, mais j'ai été obligé de prétendre que l'utilisateur "MySQL" possède les fichiers de base de données. Cela peut être simplement fait dans FSTAB: Bindfs # / Media / Windows / PHP / MySQL-Data / Media / MySQL Fuse propriétaire = mySQL, groupe = mysql, perms = 755 0 0 0 0 0 0 0 0



-1
votes

Bien sûr que vous pouvez.
Mais je ne pense pas, il est possible pour votre système de démarrage double.
de
Permet de supposer, votre serveur MySQL est installé sous Win7 Machine. Vous pouvez l'accéder parfaitement à Win7 Enviroment, et même à partir de Linux Enviroment (si vous ne refusez pas l'accès dans vos paramètres de serveur MySQL). Le système, qui est votre MySQL installé sous, doit être exécuté! vous pouvez y accéder à partir de plusieurs systèmes si autorisé; -)


2 commentaires

Comment dirigeriez-vous deux systèmes sur une machine? !!?!?


L'objectif initial était de pouvoir forcer les serveurs de base de données installés sur différents systèmes d'exploitation (même s'ils seraient de versions identiques, ils sont différents) d'utiliser les mêmes fichiers physiques. Donc, en mode de démarrage à double démarrage, indépendamment du fait que j'ai dirigé un autre système d'exploitation, je pourrais utiliser les mêmes données physiques. (Bien sûr, seul un système d'exploitation peut courir en même temps.)



4
votes

tandis que tout n'est pas idéal, cela devrait aller aussi longtemps que:

  1. Vous utilisez des versions identiques de MySQL sur les deux systèmes d'exploitation.

  2. Vous arrêtez MySQLD avant de copier les fichiers de données à travers. (Si vous allez copier les fichiers de données entre les partitions plutôt que de les garder sur une partition partagée FAT32).

    Essentiellement, tant que MySQL fonctionne sur une architecture de la même "endianness", les formats de fichiers doivent être transférables.

    comme une suggestion, vous pouvez simplement fermer ICQ, etc. et utiliser la mémoire libre pour exécuter Ubuntu dans un Virtualbox machine virtuelle au-dessus de Windows 7 - en veillant à ce que vous puissiez accéder trivialement à votre environnement de développement sans avoir à redémarrer, etc.

    Ceci est en fait assez bien configuré car cela signifie que vous pouvez utiliser un environnement de développement Windows si vous le souhaitez et hébergez simplement les données du site Web du site sur une monture Samba sur la machine virtuelle Ubuntu.


1 commentaires

Je seconde cette réponse et AlexanderMP. Cependant, devoir changer d'OSS pour vous concentrer comme vous avez besoin d'une aide plus fondamentale. :)




-3
votes

J'ai gogglé beaucoup de temps et j'ai constaté que l'exécution d'un noyau Linux est une solution solvable et une solution réalisable.

vagabond

Il s'agit d'un outil de construction et de gestion des environnements de machine virtuelle dans un seul flux de travail. La principale raison pour laquelle je vous soutiens avec Vagrant est qu'il n'est pas trop lourd et n'invalue pas une grande partie de vos ressources informatiques. Je crois que vous obtenez passer par Documentation Vagrant qui vous permettra de lancer une machine à base de Linux sur votre machine physique.

Supposons que la machine hôte est attribuée IP 192.168.1.2 et la machine virtuelle a l'adresse IP comme 192.168.1.10 et assurez-vous que l'hôte et l'invité la machine pouvait se voir. Veuillez lire à fond section de réseau pour personnaliser la configuration du réseau.

Vérification de la connexion entre hôte et machine d'invité

Installez MySQL Server

mySQL est un système de gestion de base de données. Fondamentalement, il organisera et fournira un accès aux bases de données où notre site peut stocker des informations.

Ouvrir un terminal dans la machine a été configuré de l'étape ci-dessus. Exécutez la commande suivante:

sudo apt-get install MySQL-Server-5.6

notes : Il appartient à la version de la distribution Linux installée, la commande ci-dessus serait réglable en fonction de vos besoins. Pour l'installation, j'ai utilisé le noyau de Ubuntu 14.04, voir le lien .

Lors de l'installation, votre serveur vous demandera de sélectionner et de confirmer un mot de passe pour l'utilisateur Root MySQL ROOT . Ceci est un compte administratif dans MySQL qui a accru les privilèges.

vérifier l'installation À partir d'un terminal de la machine d'invité (c'est-à-dire la machine virtuelle), exécutez la commande suivante:

mySQL-Root -P

demandera au mot de passe MySQL, puis fournissez celui que vous avez configuré lors de l'installation de MySQL Server. Ce qui suit est la capture d'écran si vous nourrissez des informations correctes sur MySQL Server.

 Entrez la description de l'image ici

Tournez le serveur MySQL accessible à distance

Parce que nous avons besoin d'un serveur de base de données centralisé où d'autres ordinateurs pouvaient accéder à la base de données d'intérêt. Encore une fois, ouvrez un terminal et exécutez les commandes MySQL suivantes:

Accorder tous les privilèges sur *. * À 'root''@'192.168.1.2' identifié par mot de passe '* 4Acfe3202a5ff5cf467898fc58aab1d615029441' avec option de subvention; Subventionner proxy sur '' @ '' à 'root''@'192.168.1.2' avec l'option de subvention; Rincer les privilèges;

quel 192.168.1.2 est l'adresse IP de la machine hôte et une chaîne hachée de mot de passe obtient de utilisateur table dans MySQL base de données.

D'accord. Vous pourriez vous reposer et profiter de votre boisson s'il n'y a pas de problème jusqu'à présent.

vérifier l'accès à distance

à partir d'un terminal de la machine hôte, allumez la commande suivante:

mysql -h192.168.1.2 -uroot -p

qui vous demande d'entrer le mot de passe. Si les informations d'identification racine sont correctes, vous verriez une capture d'écran comme celle ci-dessus. Une chose doit être accordée à une attention particulière consiste à ajouter -h192.168.1.2 suivant la commande mysql car nous ne sommes pas dans la machine où MySQL Server est installé.

Dans l'ensemble, nous avons mis en place un serveur MySQL utilisé pour la machine hôte et invité. En réalité, si j'ai une autre machine attribuée 192.168.1.3 peut également se connecter au serveur de base de données et échanger des données entre serveur et client.


7 commentaires

Pensez-vous vraiment que c'est une réponse à la question ?!


@ SK8ERPeter: C'est une suggestion parce que nous pouvons exécuter une boîte virtuelle en tant que serveur Web. Je pense que cette solution peut bien fonctionner. Et j'avais essayé cela.


Tout d'abord, vous n'avez rien répondu à rien. Vous venez de vous écrire. Vous avez constaté que c'est faisable. Félicitations pour ça! : D Mais comment cela aide-t-il quelqu'un? Vous n'avez pas participé à des détails sur la façon de le faire et la pile de pile est un forum pour s'aider mutuellement, non seulement en attendant les upvotes pour certains Bullsh ÷ T, ce qui ne contient rien de pertinent et que rien ne vous a été utile. Je vous suggère de supprimer votre réponse pour ne pas obtenir plus de bowvotes pour cela (qui malheureusement, vous méritez, désolé) ou de le modifier pour partager quelque chose d'utile (mais dans ce cas, vous feriez mieux de supprimer celui-ci et d'écrire une nouvelle réponse).


@ Sk8erpeter, même lorsque vous avez raison, je ne pense pas que l'impolitesse soit nécessaire.


Après un coupé d'années, j'avais mis à jour ma réponse basée sur mon expérience et de ce que j'ai gagné. Merci @jaimehabutzel pour votre gentil mot. Personne ne sent ma solution mise à jour digne d'être élue.


@JaimehaButzel: Je suppose que tu as raison. :) C'était il y a de nombreuses années. :) Bien que je ne comprends toujours pas pourquoi Tung ne supprime pas sa réponse qui ne résout pas le problème d'origine du tout. Je voudrais définitivement uplifier son poste s'il y avait quelque chose d'aide qui est lié à la question initiale.


@ SK8ERPeter: Pourriez-vous lire la lecture de ma réponse mise à jour ci-dessus? Êtes-vous capable de trouver un point utile? J'ai montré comment créer un environnement dans lequel nous pouvons partager un serveur de base de données, par exemple. Vagrant, plutôt que de tirer un VM. C'est faisable. Surtout, il peut remplacer par un conteneur à l'âge de la dockerisation.