Warum funktionieren meine .my.cnf-Einstellungen nicht?

15

Ich habe eine .my.cnf-Datei in meinem Ausgangsverzeichnis auf meinem Desktop, die Folgendes enthält:

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

Wenn ich mich richtig erinnere, konnte ich vor dem Upgrade von Ubuntu 10.04 auf 11.04 den Befehl verwenden

mysql dbid

So stellen Sie eine direkte Verbindung zur Datenbank her

Aber heute bekomme ich diesen Fehler:

ERROR 1049 (42000): Unknown database 'dbname'

Habe ich etwas falsch gemacht?

David LeBauer
quelle
Aufgrund der Antwort, die ich dem Update beigefügt habe, habe ich dies als "keine echte Frage" gekennzeichnet. Das Problem hatte eher mit Änderungen an der IP-Adresse als mit der Datenbank zu tun. Ich bin mir nicht wirklich sicher, ob es geschlossen werden soll oder ob ich das Update als Antwort geben soll.
David LeBauer
Oft reicht es aus, die Accounts zu kommentieren, die nicht mit einem "#" versehen werden sollen.
Ich verstehe nicht was du meinst - wie beantwortet das die Frage?
David LeBauer

Antworten:

22

Ich bin mir nicht sicher, wie Ihre vorherige .my.cnf-Datei funktioniert hat, und ich habe diese Dateien noch nie zuvor verwendet (hauptsächlich, weil ich nichts davon wusste). Nach einigem Nachforschen fand ich diesen Link und fand die folgende ~ / .my.cnf, die für mich funktionierte:

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

und der Befehl, der es liest:

mysql --defaults-group-suffix=dbid

Ein paar Dinge, auf die Sie hinweisen sollten (Höhepunkte aus dem Artikel verlinkt):

  • Vor group muss 'client' stehen, damit mysql sie lesen kann
  • muss nach [client] gruppen gehen, sonst wird es überschrieben

Ich habe dies auf MySQL 5.5 auf einem Mac getestet und es hat super funktioniert. Und jetzt, wo ich über sie Bescheid weiß, werde ich sie benutzen!

UPDATE Nachdem ich dies eingerichtet hatte, stellte ich fest, dass die Befehlszeile mysql --defaults-group-suffix=dbidein wenig umfangreich war. Als zusätzlichen Bonus, vorausgesetzt, Sie betreiben Linux / Mac / usw., gehen Sie folgendermaßen vor:

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

Wo dbidist der Name Ihrer Suffixgruppe?

Derek Downey
quelle
Hey @DTest, Good Stuff in deiner Antwort !!! +1 (Übrigens Herzlichen Glückwunsch zu Ihrem MySQL-Abzeichen)
RolandoMySQLDBA
Ich wollte dieses Video verbessern, dann sagte ich Wow Dejavu. Das war vor einigen Monaten.
RolandoMySQLDBA
0

Mein Datenbankadministrator hat mir dabei geholfen, das Problem aufzudecken. Deshalb hier die Lösung für das ursprüngliche Problem, das diese Frage aufgeworfen hat:

Das Problem (so wie ich es verstehe) war, dass die Datenbank nur den Zugriff auf Computer ermöglicht, die auf bestimmten IP-Adressen basieren. Meine IP-Adresse hatte sich geändert, als ich einen neuen Computer bekam, und ich hatte andere Passwörter für die Konten, die mit den verschiedenen IP-Adressen eingerichtet worden waren, wie mein Datenbankadministrator sagte

Ich hatte ein paar verschiedene Benutzernamen für Sie, basierend auf [email protected], [email protected] und Ihrer IP-Adresse. Die Passwörter waren nicht für alle gleich, was Verwirrung stiftete. Ich war schuld an den Problemen.

David LeBauer
quelle
0

Als Update für Derek Downeys Update verwende ich auf verschiedenen Linux-Computern eine gemeinsame ~ / .my.cnf-Datei und wähle den passenden Abschnitt automatisch entsprechend dem Hostnamen aus:

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

Danach muss ich nur noch etwas in die Befehlszeile eingeben mysql.

Christian Pietsch
quelle