Comment alias une base de données dans MySQL?
Je suis à la recherche d'un moyen de faire un alias d'une base de données dans MySQL. La raison est de pouvoir renommer une base de données de production sans mettre le système hors tension. Je me dis que je peux l'alias de la base de données pour le nouveau nom, modifier et déployer le code de connexion à mon aise, et, éventuellement, retirer l'ancien alias.
Si il ya une meilleure façon d'y parvenir s'il vous plaît laissez-moi savoir.
source d'informationauteur Schwern
Vous devez vous connecter pour publier un commentaire.
https://dev.mysql.com/doc/refman/5.7/en/symbolic-links-to-databases.html dit
Vous pouvez utiliser des liens symboliques pour lier un répertoire de base de données à un autre emplacement, par exemple en dehors de la datadir.
Mais vous ne pouvez pas utiliser des liens symboliques pour faire un répertoire de base de données un "alias" pour une autre base de données MySQL:
La raison en est que MyISAM conserve les noms de base de données et d'autres métadonnées à l'intérieur de son propre dictionnaire de données, stockées dans le fichier d'espace de stockage. Si vous confondre, vous n'obtiendrez pas ce que vous voulez.
MySQL n'a pas toute la syntaxe DDL pour l'alias de base de données.
INNODB ne fonctionne pas avec le système de fichiers liens symboliques.
Sur Unix, le chemin du lien symbolique d'une base de données est le premier à créer un répertoire sur le disque où vous avez de l'espace libre, puis de créer un doux lien à partir de la base de données d'annuaire.
MySQL ne prend pas en charge la liaison d'un répertoire de plusieurs bases de données. Remplacement d'un répertoire de base de données avec un lien symbolique fonctionne tant que vous ne faites pas un lien symbolique entre les bases de données. Supposons que vous disposez d'une base de données db1 en vertu de la base de données d'annuaire, puis faire un lien symbolique db2 qui pointe vers db1:
Le résultat est que, ou n'importe quelle table tbl_a dans db1, il semble également y avoir une table tbl_a dans db2. Si un client met à jour db1.tbl_a et une autre mise à jour du client db2.tbl_a, les problèmes sont susceptibles de survenir.
Pour déterminer l'emplacement de votre répertoire de données, l'utilisation de cette instruction:
Source: http://dev.mysql.com/doc/refman/5.1/en/symbolic-links.html
Ubuntu/Debian exemple
Avertissement: ne fonctionne Pas avec
MyISAM
tables1) Déterminer l'emplacement de votre répertoire de données:
2) Allez à l'emplacement de votre répertoire de données et d'arrêter
mysql
service:3) Créer un doux lien:
4) Fixer permisions:
5) Démarrer
mysql
: