Dlaczego moje ustawienia .my.cnf nie działają?

15

Mam plik .my.cnf w moim katalogu domowym na pulpicie, który zawiera:

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

Jeśli dobrze pamiętam, przed uaktualnieniem z Ubuntu 10.04 do 11.04 mogłem użyć polecenia

mysql dbid

Aby połączyć się bezpośrednio z bazą danych

Ale dzisiaj pojawia się ten błąd:

ERROR 1049 (42000): Unknown database 'dbname'

Czy zrobiłem coś złego?

David LeBauer
źródło
Oznacziłem to jako „nie prawdziwe pytanie” na podstawie odpowiedzi, którą zawarłem w aktualizacji. Problem dotyczył zmian wprowadzonych w adresie IP, a nie bazy danych. Nie jestem do końca pewien, czy należy go zamknąć, czy też powinienem podać aktualizację jako odpowiedź.
David LeBauer
Często wystarczy skomentować konta, których nie należy używać z „#”.
Nie rozumiem, co masz na myśli - jak to odpowiada na pytanie?
David LeBauer,

Odpowiedzi:

23

Nie jestem pewien, jak działał poprzedni plik .my.cnf, i nigdy wcześniej nie korzystałem z tych plików (głównie dlatego, że o nich nie wiedziałem). Po kilku badaniach znalazłem ten link i wpadłem na następujący ~ / .my.cnf, który działał dla mnie:

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

i polecenie, które to czyta:

mysql --defaults-group-suffix=dbid

Kilka rzeczy, na które należy zwrócić uwagę (podkreśla z linku do artykułu):

  • grupa musi być poprzedzona słowem „klient”, aby zostać odczytanym przez mysql
  • musi iść za dowolną grupą [klienta], w przeciwnym razie zostanie zastąpiona

Przetestowałem to na mysql 5.5 na Macu, działało świetnie. A teraz, gdy o nich wiem, wykorzystam je!

AKTUALIZACJA Po tym, jak to skonfigurowałem, zdałem sobie sprawę, że linia poleceń mysql --defaults-group-suffix=dbidbyła trochę potężna. Jako dodatkowy bonus, zakładając, że używasz Linux / Mac / Etc, wykonaj następujące czynności:

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

Gdzie dbidjest nazwa twojej grupy sufiksów.

Derek Downey
źródło
Hej @DTest, dobre rzeczy w twojej odpowiedzi !!! +1 (BTW Gratulacje z twojej odznaki mysql)
RolandoMySQLDBA
Chciałem zagłosować za tym, a potem powiedziałem Wow Dejavu. To było kilka miesięcy temu.
RolandoMySQLDBA
0

Mój administrator bazy danych pomógł mi odkryć problem, dlatego oto rozwiązanie pierwotnego problemu, który spowodował następujące pytanie:

Problem (jak rozumiem) polegał na tym, że baza danych umożliwia dostęp tylko do komputerów opartych na określonych adresach IP. Mój adres IP zmienił się, gdy otrzymałem nowy komputer, i miałem różne hasła do kont, które zostały skonfigurowane z różnymi adresami IP, słowami mojego administratora bazy danych

Miałem dla ciebie kilka różnych nazw użytkowników na podstawie [email protected], [email protected] i twojego adresu IP. Hasła nie były takie same dla wszystkich, co spowodowało zamieszanie, to moja wina za kłopot.

David LeBauer
źródło
0

W ramach aktualizacji Dereka Downeya wykorzystuję wspólny plik ~ / .my.cnf na różnych komputerach z Linuksem, automatycznie wybierając odpowiednią sekcję zgodnie z nazwą hosta:

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

Potem wszystko, co muszę wpisać w wierszu poleceń, to mysql.

Christian Pietsch
źródło