MySQL eines UCS-Rechners remote öffnen

german

#1

Hallo,

ich habe auf meinem UCS-Server (4.1) den MySQL-Server laufen. Auf den kann ich per lokaler Kommandozeile auch drauf zugreifen.

Da ich jetzt aber einige größere Anpassungen an der DB machen möchte, wollte ich mit HeidiSQL von meinem Windows-Rechner auf die Datenbank-Instanz des UCS-Servers zugreifen. Leider ohne Erfolg.

Das passende Kennwort als Root habe ich gefunden untern /etc/mysql.secret

Muss an der DB noch etwas verändert werden, bevor ich remote auf sie zugreifen kann?

LG
Michael


MySQL Root Password
#2

Moin,

da gibt’s zwei Sachen zu beachten: die Firewall und die MySQL-Authentifizierung.

Ob eine Firewall läuft und ob sie Verbindungen zu MySQL aus dem lokalen Netz zulässt, sehen Sie mit »iptables -L INPUT -nv«. Sind dort viele Zeilen enthalten, ist die Firewall aktiv. Ob Port 3306 zugelassen wird, sehen Sie (grob vereinfacht) mit »iptables -L INPUT -nv | grep 3306«.

Falls Sie den Port noch öffnen müssen:

ucr set security/packetfilter/tcp/3306/all=ACCEPT service univention-firewall restart

Dann die MySQL-Authentifizierung. MySQL legt bei jedem User auch gleichzeitig mit fest, von welchen IP-Adressen aus er sich anmelden darf. Bei UCS wird normalerweise nur ein Account für »root« von »localhost« und vom DC Master erstellt. Wenn Sie auch von anderen Rechnern aush zugreifen wollen, so empfehle ich die MySQL-Dokumentation zu CREATE USER sowie zur Syntax der Accountnamen.

Gruß,
mosu


#3

Hallo,

nur zur Sicherheit: Wurde univention-mysql installiert? Dann kann man ein paar Sachen per UCR konfigurieren:

root@cabbages:~# ucr search --brief mysql mysql/autostart: <empty> mysql/config/.*/.*: <empty> mysql/config/mysqld/bind_address: 0.0.0.0 mysql/config/mysqld/innodb_buffer_pool_size: 157286400 mysql/config/mysqld/max_allowed_packet: 33554432 mysql/config/mysqld/max_connections: 151 mysql/config/mysqld/query_cache_limit: 2097152 mysql/config/mysqld/query_cache_size: 33554432

Z.B. auch die Option “bind_address”. Die steht aber seit einiger Zeit defaultmäßig auf 0.0.0.0, also “alle (IPv4-)Netzwerkinterfaces”. Vermutlich fehlt wie von Moritz Bunkus erwähnt die Ausnahme in der Firewall.

Und bitte das obligatorische “/usr/bin/mysql_secure_installation” nicht vergessen :slight_smile:

Schönen Gruß,
Michael Grandjean


#4

Ach richtig, die bind_address hatte ich komplett übersehen. Danke :slight_smile:


#5

Vielen Dank für die weiterführenden Infos.

Firewall ist jetzt für den Port geöffnet.

Bei der Abfrage von ucr search --brief mysql bekomme ich folgendes Ergebniss:

mysql/autostart: <empty>

Mehr nicht :frowning:

Zugriff ist aber immer noch nicht möglich, werde mich jetzt mal darum kümmern die Links von oben bezüglich des Benutzers noch durchzusehen


#6

Wenn die MySQL-Konfiguration nicht durch Univention gemanaget wird (weil das Paket univention-mysql nicht installiert ist), dann müssen Sie manuell die bind_address in /etc/mysql/my.cnf anpassen, damit MySQL nicht nur auf localhost lauscht.


#7

OK, jetzt passt es

Ich war der Meinung, das MySQL über UCS installiert wurde, weil ich ja ownCloud auch noch darauf habe. Aber anscheinend ist das nicht der Fall.

Kann man das einfach “überinstallieren”?


#8

univention-mysql gibts m.E. erst seit August (Univention Corporate Server 4.1 erratum 223). Bislang ist das Paket mysql-server als Abhängigkeit installiert worden.
Ich gehe derzeit davon aus, dass man durch die manuelle Installation von univention-mysql nichts zerstört. Meine Demoinstanz geht jedenfalls noch.


#9

Perfekt.

Hat Super geklappt. Ich kann jetzt auf den MySQL zugreifen

Danke für die schnelle und kompetente Hilfe