Juste pour mettre à jour ce message si quelqu'un rencontre cela, InnoDB prend désormais en charge le répertoire de données depuis la version 5.6. Pas de lien symbolique (non recommandé) et fonctionne à la fois pour *nix et Windows.
Exigences :
- MySQL 5.6 et supérieur
- innodb_file_per_table est activé
innodb_file_per_table = 1
Scénario 1 (créer de nouvelles tables) :
C'est aussi simple que de spécifier les options DATA DIRECTORY lors de la création de la table.
CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';
Scénario 2 (déplacement d'une table existante vers un disque séparé) :
Cela implique quelques étapes supplémentaires (redémarrage du serveur MySQL requis) mais reste assez simple. Et il n'est pas nécessaire que la table ait l'option DATA DIRECTORY spécifiée lors de la création de la table.
- Arrêter le serveur MySQL
- Déplacer la table innodb table_name Fichier .ibd pour séparer le disque/volume par simple copie de fichier/déplacement de fichier
- Créez un fichier texte avec l'extension .isl, par ex. table_name .isl
- Modifiez le fichier .isl et saisissez le nouveau chemin d'accès au table_name .ibd fichier que vous avez déplacé.
/alternative/directory/table_name.ibd
- Assurez-vous que le fichier .ibd d'origine dans l'ancien chemin a été supprimé
- Démarrer le serveur MySQL
Désormais, les modifications ultérieures apportées à la table déplacée seront enregistrées dans le fichier .ibd dans un nouveau chemin.
Pour référence, veuillez consulter la documentation officielle de MySQL :http:// dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html