.my.cnf 설정이 작동하지 않는 이유는 무엇입니까?


15

데스크탑의 홈 디렉토리에 .my.cnf 파일이 있습니다.

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

Ubuntu 10.04에서 11.04로 업그레이드하기 전에 올바르게 리콜하면 명령을 사용할 수있었습니다

mysql dbid

데이터베이스에 직접 연결하려면

그러나 오늘이 오류가 발생합니다.

ERROR 1049 (42000): Unknown database 'dbname'

내가 잘못 했어?


업데이트에 포함 된 답변을 기반으로 이것을 실제 질문이 아닌 것으로 표시했습니다. 문제는 데이터베이스와 관련된 것이 아니라 ip 주소의 변경과 관련이있었습니다. 닫혀 있는지 또는 업데이트를 답변으로 제공 해야하는지 확실하지 않습니다.
David LeBauer

종종 "#"과 함께 사용해서는 안되는 계정에 대한 설명으로 충분합니다.

나는 당신이 무엇을 의미하는지 이해하지 못합니다-이것이 어떻게 질문에 대답합니까?
David LeBauer

답변:


23

이전 .my.cnf의 작동 방식을 잘 모르겠으며 실제로 이전에 이러한 파일을 사용한 적이 없습니다 (주로 파일에 대해 몰랐기 때문에). 그래서 약간의 연구 끝에이 링크를 발견 하고 나를 위해 일한 다음 ~ / .my.cnf를 찾았 습니다.

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

그리고 그것을 읽는 명령 :

mysql --defaults-group-suffix=dbid

몇 가지 지적해야 할 사항 (링크 된 기사에서 강조) :

  • mysql에 의해 읽히려면 group 앞에 'client'가 있어야합니다.
  • [client] 그룹 뒤에 가야합니다. 그렇지 않으면 재정의됩니다.

Mac의 mysql 5.5에서 이것을 테스트했지만 훌륭하게 작동했습니다. 그리고 이제 그들에 대해 알았으므로 사용할 것입니다!

업데이트 이것을 설정 한 후 명령 행 mysql --defaults-group-suffix=dbid이 약간 무겁다는 것을 깨달았습니다 . 따라서 추가 보너스로 Linux / Mac / Etc를 실행한다고 가정하면 다음을 수행하십시오.

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

dbid접미사 그룹의 이름은 어디에 있습니까 ?


안녕 @DTest, 당신의 대답에 좋은 물건! +1 (BTW mysql 배지 축하)
RolandoMySQLDBA

나는 이것을지지하려고했고, 와우 데자부에게 말했다. 이것은 몇 달 전부터였습니다.
RolandoMySQLDBA

0

데이터베이스 관리자가 문제를 밝혀내는 데 도움이되었으므로이 문제를 유발 한 원래 문제에 대한 해결책은 다음과 같습니다.

문제는 데이터베이스가 특정 IP 주소를 기반으로 한 컴퓨터에만 액세스 할 수 있다는 것입니다. 새 컴퓨터를 얻었을 때 내 IP 주소가 변경되었고 데이터베이스 관리자의 말에 따라 다른 IP 주소로 설정된 계정에 대해 다른 암호를 사용했습니다

user@olddesktopip.edu, user@newdesktopip.edu 및 IP 주소를 기반으로 몇 가지 다른 사용자 이름이 있습니다. 암호는 모두 동일하지 않아 혼동을 일으켰습니다. 문제의 원인은 내 잘못이었습니다.


0

Derek Downey의 업데이트에 대한 업데이트로서, 다른 Linux 컴퓨터에서 공통 ~ / .my.cnf 파일을 사용하여 호스트 이름에 따라 적절한 섹션을 자동으로 선택하는 방법입니다.

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

그 후, 명령 줄에 입력 해야하는 모든 것은 mysql입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.