Modifier le chemin de datadir existant

20

Je veux changer le datadirchemin dans le my.inifichier.

Le datadirchemin existant estC:/ProgramData/MySQL/MySQL Server 5.1/Data/

La taille de mon C:disque est de 30 Go et le dossier de données MySQL occupe 25 Go. Je veux donc changer le datadiren F:/naveen/data.

Est-ce possible?

Ma machine exécute Windows Server 2003 .

naveen
la source

Réponses:

26

De vos chemins, je peux supposer en toute sécurité ce qui suit:

  • Vous exécutez MySQL sous Windows
  • Vous avez utilisé le MySQL MSI pour installer

Ce que vous devez faire est d'établir le fichier my.ini

Lors de l'installation de MySQL pour Windows à l'aide du MSI, l'emplacement de my.ini devrait être C:/ProgramData/MySQL/MySQL Server 5.1.

Veuillez exécuter ce qui suit dans une fenêtre DOS:

cd C:/ProgramData/MySQL/MySQL Server 5.1
dir *.ini

Vous verrez quelques exemples de fichiers my.ini. Cependant, s'il n'y a aucun fichier nommé my.ini dans ce dossier, vous devez en créer un. Qu'il existe ou non, veuillez exécuter ceci:

cd C:/ProgramData/MySQL/MySQL Server 5.1
notepad my.ini

Si vous êtes invité à le créer, veuillez le faire.

Ensuite, créez l'entrée suivante sous l'en-tête de groupe [mysqld] dans my.ini:

[mysqld]
datadir=F:/naveen/data

Enregistrer my.ini

Ensuite, arrêtez mysql à partir de la ligne de commande DOS comme ceci:

C:\> net stop mysql

Ensuite, faites une copie de l'intégralité du dossier de données dans le nouvel emplacement

C:\> xcopy "C:\ProgramData\MySQL\MySQL Server 5.1\data" F:\naveen\data /s

Dernière étape, démarrez mysql

C:\> net start mysql

Essayez de vous connecter à mysql. Une fois que vous pouvez vous connecter à mysql avec succès, exécutez cette commande:

show variables like 'datadir';

Si F:\naveen\dataapparaît comme datadir, FÉLICITATIONS, VOUS L'AVEZ FAIT BIEN !!!

Une fois que vous êtes satisfait de toutes vos applications qui fonctionnent avec MySQL, vous pouvez tout supprimer dans C:\ProgramData\MySQL\MySQL Server 5.1\data\*

Essaie !!!

RolandoMySQLDBA
la source
Puis-je savoir que les étapes ci-dessus fonctionneront pour Windows Server 2008?
Fonctionne, mais vous obtiendrez probablement l'erreur 1067. Vérifiez les autorisations sur le nouveau répertoire
2
Parfois, le service est enregistré en tant que MySQL57, vous devez d'abord vérifier.
giannis christofakis
2
J'ai fait une erreur noob et je n'ai pas autorisé xcopy. mysql ne redémarrerait pas. J'ai essayé de donner au SERVICE RÉSEAU un accès complet au datadir (selon d'autres suggestions en ligne), et cela a jeté des erreurs de permission. Si cela vous arrive, donnez à "Tout le monde" le contrôle total des sous-répertoires de données et héritez aux enfants. Accédez ensuite au dossier parent (datadir), activez l'héritage via les autorisations "Avancé" et appliquez-le à tous les enfants. Vous pouvez ensuite ajouter NETWORK SERVICE à votre datadir, en lui donnant un contrôle total et cela se propagera aux enfants.
murraybiscuit
2
Vous devez utiliser à la xcopy /O/X/E/H/Kplace de xcopy /Sdans cette réponse.
Ethan Allen