Pourquoi mes paramètres .my.cnf ne fonctionnent-ils pas?

15

J'ai un fichier .my.cnf dans mon répertoire personnel sur mon bureau qui comprend:

[dbid]
user = myusername
password = mypassword
database = dbname
host = server.location.com

Si je me souviens bien, avant de passer d'Ubuntu 10.04 à 11.04, j'ai pu utiliser la commande

mysql dbid

Pour se connecter directement à la base de données

Mais aujourd'hui, je reçois cette erreur:

ERROR 1049 (42000): Unknown database 'dbname'

Ai-je fait quelque chose de mal?

David LeBauer
la source
J'ai signalé cela comme «pas une vraie question» sur la base de la réponse que j'ai incluse dans la mise à jour. Le problème était lié aux modifications apportées à l'adresse IP plutôt qu'à la base de données. Je ne suis pas vraiment sûr si elle doit être fermée ou si je dois fournir la mise à jour comme réponse.
David LeBauer
Souvent, il suffit de commenter les comptes, qui ne doivent pas être utilisés avec un "#".
Je ne comprends pas ce que vous voulez dire - comment cela répond-il à la question?
David LeBauer

Réponses:

23

Je ne sais pas comment votre précédent .my.cnf fonctionnait et je n'ai jamais utilisé ces fichiers auparavant (principalement parce que je ne les connaissais pas). Donc, après un peu de recherche, j'ai trouvé ce lien et j'ai trouvé le ~ / .my.cnf suivant qui a fonctionné pour moi:

[clientdbid]
password = mypass
database = dbname
host = server.location.com

et la commande qui le lit:

mysql --defaults-group-suffix=dbid

Quelques points à souligner (faits saillants de l'article lié):

  • le groupe doit être précédé de 'client' pour être lu par mysql
  • doit aller après tout groupe [client], sinon il sera remplacé

J'ai testé cela sur mysql 5.5 sur un Mac, a très bien fonctionné. Et maintenant que je les connais, je vais les utiliser!

MISE À JOUR Après avoir configuré cela, j'ai réalisé que la ligne de commande mysql --defaults-group-suffix=dbidétait un peu lourde. Donc, en prime, en supposant que vous utilisez Linux / Mac / Etc, faites ceci:

echo 'alias mysql_dbid="mysql --defaults-group-suffix=dbid"' >> ~/.profile

dbidest le nom de votre groupe de suffixes.

Derek Downey
la source
Hé @DTest, Good Stuff dans votre réponse !!! +1 (BTW Félicitations pour votre badge mysql)
RolandoMySQLDBA
J'allais voter pour celui-ci, puis j'ai dit Wow Dejavu. C'était il y a plusieurs mois.
RolandoMySQLDBA
0

Mon administrateur de base de données m'a aidé à découvrir le problème, et voici donc la solution au problème d'origine qui a provoqué cette question:

Le problème (si je comprends bien) était que la base de données autorise uniquement l'accès aux ordinateurs en fonction d'adresses IP spécifiques. Mon adresse IP avait changé lorsque j'ai eu un nouvel ordinateur et j'avais des mots de passe différents pour les comptes qui avaient été configurés avec les différentes adresses IP, selon les termes de mon administrateur de base de données

J'avais quelques noms d'utilisateur différents pour vous en fonction de [email protected], [email protected] et de votre adresse IP. Les mots de passe n'étaient pas les mêmes pour tous ce qui causait la confusion, c'était ma faute pour le problème.

David LeBauer
la source
0

En tant que mise à jour de la mise à jour de Derek Downey, voici comment j'utilise un fichier ~ / .my.cnf commun sur différents ordinateurs Linux, en choisissant automatiquement la section appropriée en fonction du nom d'hôte:

echo 'alias mysql="mysql --defaults-group-suffix=$HOST"' >> ~/.bash_aliases

Après cela, tout ce que je dois taper sur la ligne de commande est mysql.

Christian Pietsch
la source