PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Maria DB im vLAN erreichbar machen



MarroniJohny
13.11.16, 14:41
Hi

Ich habe auf meinem ESXi zwei ubuntu. Eins mit git, und eins mit nginx und mariadb, welches als Testserver dienen soll. nginx ist per Browser erreichbar.

Nun möchte ich anhand der Anleitung hier (https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/) die mariadb für das mySQL Administrator Tool vom betreffenden vLAN erreichbar machen. Klappt bei mir aber leider nicht. Einerseits habe ich ein Problem mich per localhost (root) nicht einloggen kann (Access denied for user). Andererseits habe ich das noch das Problem, dass ich mich nicht per IP auf den Server connecten kann (can't connect to mySQL Server. (Siehe Screenshots).

Könnt Ihr bitte mal die Screenshots anschauen? Danke!

21105

21104

florian0285
13.11.16, 14:59
Also ich hab MariaDB noch nie benutzt :D
Aber die Meldung erscheint mir eindeutig ;)

Der User "root" darf sich nicht anmelden. Daher gibt es einen User, den du bei der Installation angelegt hast. Nimm diesen.

Ein Beispiel für PostgreSQL


# su - postgres
$ psql


Vermutlich hört der Server auch nur am "localhost", daher kannst du dich nicht über die 192.xx Adresse verbinden.



ss -antp


in der Ausgabe sollte stehen auf welcher Adresse der Server alles hört. Möchtest du dies ändern geht das wie hier beschrieben:
https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/

Weiter unten im Link steht auch wie man bestimmten Usern Zugriff von remote gewährt.

BetterWorld
13.11.16, 15:29
Was Florian schreibt, ist Totalquark.

Von altersher hat mysql/mariadb einen User names "root", der auch existiert und sich anmelden kann.
Es ist eine komplett eigene Userwaltung. Also System-Root ist nicht DB-Root.

Dein Problem ist ein anderes:
"localhost" wird hier etwas anders vewendet, als man gemeinhin glaubt.
Bei root@localhost als DB-User wird eine Unix-socket Verbindung verwendet, bei 127.0.0.1 eine TCP/IP Socket Verbindung.
Aus Sicht der DB sind das zwei verschiedene User.

Probiere root@127.0.0.1
Wenn das klappt, setze für alle innerhalb der DB definierten root Accounts vernünftige Spasswörter und definiere dir die gewünschten DB-User Accounts.

MarroniJohny
14.11.16, 17:23
Hi

Auf 127.0.0.1 kann ich mich jetzt per mySQL Workbench verbinden mit dem neuen User. Auf der IP im vLAN habe ich dem User die gleichen Rechte vergeben (siehe Anhang).

Jetzt habe ich einfach noch das Problem, dass der Server nicht erreichbar ist auf der IP vom vLAN. Des weiteren bekomme ich per TCP/IP unverschlüsselt von mySQL Workbench die Fehlermeldung, dass das Protokoll irgendwie veraltet ist, oder sowas. Ich brauch die db aber nur im LAN. Aber wenn ich meinen hoster anschaue z.B., da geht auch alles, aber wirklich alles unverschlüsselt durch. Ich hab da allerdings null Plan ^^


Sehe ich das richtig, dass die ganze Konfiguration bzgl. User, Rechte, IP's und Hostnames in der mysql db gespeichert ist?
Wer muss da welche Rechte haben auf der DB?
Muss ich noch Config Files bearbeiten?
Was mir auch noch nicht ganz klar ist: per root an der shell kann ich mich ja mit meinem Passwort an dem mysql server anmelden. Welche Bedeutung hat da der root vom System?
Gibt es da bessere (gratis) Editoren wie mySQL Workbench dazu?



Sry, mir war das mit den Windows/AD/was weiss ich Usern und MSSQL schon nie klar. Ich war einfach immer froh wenn die db gelaufen ist. Ich hab da die Windows Benutzerkonten immer aussen vor gelassen.

21106

BetterWorld
14.11.16, 18:37
Wie schon geschrieben hat mysql/mariadb eine komplett eigene Uservewaltung.
Der System- Root hat also mit dem mysql/mariadb - Root nichts, aber auch gar nichts zu tun.
Außer dass beide "root" heißen.

Es gibt in jeder mysql/mariabd eine "Systemdatenbank". Dort steht das allermeiste, was dafür wichtig ist.
Verbinde dich mit deiner Datenbank, als DB-User "root".

# im interaktiven mysql Client beginnen Kommentare auch mit #

# alle Datenbanken anzeigen lassen.
show databases;

# mysql/mariadb kennt eine rudimentäre Completion. Versuche überall <tab><tab>. Oft tippt es dann für dich

# uns interessiert die mysql DB.
# wir machen sie "aktiv"
use mysql;

# was sind da alles für Tabellen drin?
show tables;

# da is ja die Systemuser Tabelle!
# was steht da alles so drin?
select * from user;

# öha!!!Viel mehr kann ich nicht sagen, da du ja keinerlei Infos zu deinen Netzen gibst.
Aber es sollte langsam klarwerden, dass du für jeden User mit egal welcher IP dort einen Eintrag brauchst.
Dem du dann mit GRANT entsprechende Rechte einräumen/beschränken kannst.