Perché le mie impostazioni .my.cnf non funzionano?


15

Ho un file .my.cnf nella mia home directory sul mio desktop che include:

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

Se ricordo bene, prima di aggiornare da Ubuntu 10.04 a 11.04, sono stato in grado di usare il comando

mysql dbid

Per connettersi direttamente al database

Ma oggi ricevo questo errore:

ERROR 1049 (42000): Unknown database 'dbname'

Ho fatto qualcosa di sbagliato?


L'ho contrassegnato come "non una vera domanda" in base alla risposta che ho incluso nell'aggiornamento. Il problema aveva a che fare con le modifiche apportate all'indirizzo IP piuttosto che con il database. Non sono sicuro se debba essere chiuso o se dovrei fornire l'aggiornamento come risposta.
David LeBauer,

Spesso è sufficiente commentare gli account, che non devono essere usati con un "#".

Non capisco cosa intendi: come risponde alla domanda?
David LeBauer,

Risposte:


23

Non sono sicuro di come funzionasse il tuo precedente .my.cnf e in realtà non ho mai usato questi file prima (principalmente perché non li conoscevo). Quindi dopo un po 'di ricerche, ho trovato questo link e il seguente ~ / .my.cnf che ha funzionato per me:

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

e il comando che lo legge:

mysql --defaults-group-suffix=dbid

Un paio di cose da sottolineare (punti salienti dell'articolo collegato):

  • il gruppo deve essere preceduto da 'client' per essere letto da mysql
  • deve seguire qualsiasi gruppo [client], altrimenti verrà ignorato

Ho provato questo su mysql 5.5 su Mac, ha funzionato benissimo. E ora che li conosco, li userò!

AGGIORNAMENTO Dopo aver impostato questo, mi sono reso conto che la riga di comando mysql --defaults-group-suffix=dbidera un po 'pesante. Quindi, come bonus aggiuntivo, supponendo che tu stia eseguendo Linux / Mac / Etc, fai questo:

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

Dov'è dbidil nome del tuo gruppo di suffissi.


Ehi, @Test, roba buona nella tua risposta !!! +1 (BTW Congratulazioni per il tuo badge mysql)
RolandoMySQLDBA

Stavo per votare questo, poi ho detto Wow Dejavu. Questo era di diversi mesi fa.
RolandoMySQLDBA,

0

Il mio amministratore del database mi ha aiutato a scoprire il problema, quindi ecco la soluzione al problema originale che ha posto questa domanda:

Il problema (a quanto ho capito) era che il database consente l'accesso solo a computer basati su indirizzi IP specifici. Il mio indirizzo IP era cambiato quando avevo un nuovo computer e avevo password diverse per gli account che erano stati impostati con i diversi indirizzi IP, nelle parole dell'amministratore del mio database

Avevo alcuni nomi utente diversi per te basati su user@olddesktopip.edu, user@newdesktopip.edu e il tuo indirizzo IP. Le password non erano le stesse per tutte quelle che causavano confusione, era colpa mia per il problema.


0

Come aggiornamento dell'aggiornamento di Derek Downey, è così che utilizzo un file ~ / .my.cnf comune su diversi computer Linux, scegliendo automaticamente la sezione adatta in base al nome host:

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

Dopodiché, tutto ciò che devo digitare sulla riga di comando è mysql.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.