Por que minhas configurações .my.cnf não funcionam?

15

Eu tenho um arquivo .my.cnf no meu diretório pessoal na área de trabalho que inclui:

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

Se bem me lembro, antes de atualizar do Ubuntu 10.04 para 11.04, consegui usar o comando

mysql dbid

Para conectar-se diretamente ao banco de dados

Mas hoje eu recebo este erro:

ERROR 1049 (42000): Unknown database 'dbname'

Fiz algo errado?

David LeBauer
fonte
Sinalizei isso como 'não uma pergunta real' com base na resposta que incluí na atualização. O problema estava relacionado às alterações feitas no endereço IP, em vez de ao banco de dados. Não tenho certeza se deve ser fechado ou se devo fornecer a atualização como resposta.
David LeBauer
Frequentemente, basta comentar as contas, que não devem ser usadas com um "#".
Não entendo o que você quer dizer - como isso responde à pergunta?
David LeBauer

Respostas:

22

Não sei ao certo como o arquivo .my.cnf anterior funcionava e, na verdade, nunca usei esses arquivos antes (principalmente porque não os conhecia). Então, depois de um pouco de pesquisa, encontrei este link e criei o seguinte ~ / .my.cnf que funcionou para mim:

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

e o comando que lê:

mysql --defaults-group-suffix=dbid

Algumas coisas a destacar (destaques do artigo vinculado):

  • O grupo deve ser precedido por 'client' para ser lido pelo mysql
  • tem que ir atrás de qualquer grupo [cliente], caso contrário ele será substituído

Eu testei isso no mysql 5.5 em um Mac, funcionou muito bem. E agora que eu sei sobre eles, vou usá-los!

ATUALIZAÇÃO Depois de configurar isso, percebi que a linha de comando mysql --defaults-group-suffix=dbidera um pouco pesada. Portanto, como bônus adicional, supondo que você esteja executando o Linux / Mac / Etc, faça o seguinte:

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

Onde dbidestá o nome do seu grupo de sufixos.

Derek Downey
fonte
Hey @DTest, coisas boas na sua resposta !!! +1 (Parabéns pelo seu distintivo mysql) #
RolandoMySQLDBA
Eu estava indo para votar este, então eu disse Wow Dejavu. Isso foi há vários meses atrás.
RolandoMySQLDBA 15/02/12
0

Meu administrador de banco de dados me ajudou a descobrir o problema, e aqui está a solução para o problema original que levou a essa pergunta:

O problema (como eu o entendo) era que o banco de dados só permite acesso a computadores com base em endereços IP específicos. Meu endereço IP mudou quando recebi um computador novo e eu tinha senhas diferentes para as contas que foram configuradas com os diferentes endereços IP, nas palavras do administrador do banco de dados.

Eu tinha alguns nomes de usuário diferentes para você, com base em [email protected], [email protected] e seu endereço IP. As senhas não eram as mesmas para todos, o que causou confusão, foi minha culpa pelo problema.

David LeBauer
fonte
0

Como uma atualização da atualização de Derek Downey, é assim que uso um arquivo ~ / .my.cnf comum em diferentes computadores Linux, escolhendo a seção adequada de acordo com o nome do host automaticamente:

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

Depois disso, tudo o que tenho que digitar na linha de comando é mysql.

Christian Pietsch
fonte