Est-il possible de définir un schéma par défaut pour chaque utilisateur dans MySQL et si oui comment? Où utilisateur x utiliserait par défaut schéma y et utilisateur z utiliserait par défaut schéma a.
Il n'y a pas de base de données par défaut pour l'utilisateur. Il existe une base de données par défaut pour la session en cours.
Vous pouvez l'obtenir en utilisant la fonction DATABASE () -
SELECT DATABASE();
Et vous pouvez le définir en utilisant l'instruction USE -
USE database1;
Vous devriez le régler manuellement - USE db_name
, ou dans la chaîne de connexion.
Si votre utilisateur a un dossier local, par exemple Linux, dans le dossier d’accueil de vos utilisateurs, vous pouvez créer un fichier .my.cnf et fournir les informations d’accès permettant d’accéder au serveur. par exemple:-
[client]
Host=localhost
user=yourusername
password=yourpassword or exclude to force entry
database=mygotodb
Mysql ouvrirait alors ce fichier pour chaque compte d'utilisateur lu les informations d'identification et ouvrirait la base de données sélectionnée.
Pas sûr sous Windows, j'ai mis à niveau à partir de Windows car j'avais besoin de toute la maison, pas seulement des fenêtres (Linux), il y a quelque temps.