MariaDB Config-Änderungen greifen nicht

Blutschlumpf

Fleet Admiral
Registriert
März 2001
Beiträge
20.766
Hallo,

ich habe ein Problem auf nem Debian 13 + MariaDB (10.11.18-MariaDB-0+deb12u1).
Die DB war mal mysql und ist dann über die Debian-Migrationslogik vor Jahren auf Maria-DB gewechselt.
Die Config ist afair komplett out-of the Box, da wurde also nichts gefrickelt.

Mir ist aufgefallen, dass mariadb/mysql auf allen Interfaces statt nur lo antwortet.
"bind-address" ist allerdings auf 127.0.0.1 gesetzt.

Ich habe dann testweise mal den TCP Port (/etc/mysql/mariadb.cnf) und bind-address (/etc/mysql/mariadb.conf.d/50-server.cnf) markant verändert.

Damit soll man prüfen können welche Config greift, die scheint also nicht anderwo her überschrieben zu werden:
Code:
web1:/etc/mysql# mysqld --verbose --help | grep port
...
port                                                         3307

web1:/etc/mysql# mysqld --verbose --help | grep bind
  --bind-address=name IP address to bind to. Several addresses may be
bind-address                                                 127.0.0.99
web1:/etc/mysql#

Allerdings ändert das nichts daran was der dann daraus macht.
Ich hätte ja jetzt zumindest nen Fehler erwartet weils die 127.0.0.99 nirgendwo gibt, aber meine Änderungen bewirken einfach gar nichts:
Code:
web1:/etc/mysql# service mysql status
● mariadb.service - MariaDB 10.11.18 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-09-07 23:43:45 CEST; 4s ago
TriggeredBy: ● mariadb.socket
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 550428 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && echo _WSREP_START_POSITION=$VAR > /run/mysqld/wsrep-start-position || exit 1 (code=exited, status=0/SUCCESS)
    Process: 550501 ExecStartPost=/bin/rm -f /run/mysqld/wsrep-start-position /run/mysqld/wsrep-new-cluster (code=exited, status=0/SUCCESS)
    Process: 550503 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 550489 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 14 (limit: 30887)
     Memory: 111.6M
        CPU: 343ms
     CGroup: /system.slice/mariadb.service
             └─550489 /usr/sbin/mariadbd

Sep 07 23:43:45 web1 mariadbd[550489]: 2026-09-07 23:43:45 0 [Note] Using systemd activated socket host :: port 3306
Sep 07 23:43:45 web1 mariadbd[550489]: 2026-09-07 23:43:45 0 [Note] Using systemd activated unix socket /run/mysqld/mysqld.sock
Sep 07 23:43:45 web1 mariadbd[550489]: 2026-09-07 23:43:45 0 [Note] Using systemd activated unix socket @mariadb
Sep 07 23:43:45 web1 mariadbd[550489]: 2026-09-07 23:43:45 0 [Note] /usr/sbin/mariadbd: ready for connections.
Sep 07 23:43:45 web1 mariadbd[550489]: Version: '10.11.18-MariaDB-0+deb12u1'  socket: 'Systemd socket activated ports'  port: 3306  Debian 12
Sep 07 23:43:45 web1 mariadbd[550489]: 2026-09-07 23:43:45 0 [Note] InnoDB: Buffer pool(s) load completed at 260907 23:43:45
Sep 07 23:43:45 web1 systemd[1]: Started mariadb.service - MariaDB 10.11.18 database server.
Sep 07 23:43:45 web1 /etc/mysql/debian-start[550505]: Upgrading MySQL tables if necessary.
Sep 07 23:43:45 web1 /etc/mysql/debian-start[550508]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Sep 07 23:43:45 web1 /etc/mysql/debian-start[550516]: Checking for insecure root accounts.

Muss ich da was beachten weil der systemd da mit reinspielt?
Code:
web1:~# lsof -i tcp -n
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd    1        root   57u  IPv6  12853      0t0  TCP *:mysql (LISTEN)
mariadbd 645       mysql    5u  IPv6  12853      0t0  TCP *:mysql (LISTEN)

Unter /etc/systemd/ hab ich nichts hilfreiches gefunden.
Hab auch schon die ganze Kiste testweise restartet.
 
Was für eine Ausgabe erhältst du mit
netstat -lntup | grep mariadbd
 
Welche Files hast du unter: /etc/mysql/ ? Gibt es hier vielleicht mehr config files? Kannst du mal die Inhalte der config Files posten? Oder Anhängen. Scheint als würdest du evtl. die falschen Dateien bearbeiten.
 
Was soll den das Ziel der Veränderung sein? Die Bindung an eine andere IP/Netzwerkkarte?
Ergänzung ()

@Muffknutscher

Eigentlich sollten die cnf-Dateien unter /etc/mysql/mariadb.conf.d/ liegen.
 
Zuletzt bearbeitet:
@TomTDooley

Genau... Eigentlich... Und eigentlich sollte die config Änderung hätte greifen sollen.

Genau deshalb wäre gut zu wissen was da alles so Rum gammelt, auch in den Unterordnern.
 
Hi, geh mal ins Verzeichnis /etc/mysql/mariadb.conf.d/ und leg dir eine eigene Konfigurationsdatei (z. B. 90-meine_Einstellung.cnf) an. In die Datei schreib mal folgendes:

[server]

[mysqld]

bind-address = <deine IP Adresse>
port = <deine Portnummer>

Speichere die Datei und starte mariadb neu. Greifen die Parameter? Was zeigt die Ausgabe von ss -tln ?
 
@Muffknutscher

Wir warten einfach ab, was der TE zum "Ziel" schreibt?
Alternative eine Regel in der Firewall die Port und IP begrenzt.

für IP-Tables: (rules.v4)

-A INPUT -p tcp -m tcp -i lo --dport 3306 -j ACCEPT

oder

-A INPUT -p tcp -m tcp -i eth0 --dport 3306 -j DROP
(eth0, je nach Bezeichnung z.B. enp1s0, enp2s0 etc. pp.)
 
Zuletzt bearbeitet:
Blutschlumpf schrieb:
Code:
bind-address                                                 127.0.0.99
web1:/etc/mysql#
Ich hätte ja jetzt zumindest nen Fehler erwartet weils die 127.0.0.99 nirgendwo gibt, aber meine Änderungen bewirken einfach gar nichts:
Woher kommt diese IP? Habe ich so noch nirgends bei den zahlreichen MariaDB Installationen gesehen. Ich würde das auf 127.0.0.1 ändern.
 
foofoobar schrieb:
-p" funzt nur als root.
Korrekt, da Debian in der Standard Installation kein sudo kann habe ich es weg gelassen. Spätesten wenn nach Eingabe folgende Meldung kommt sollte es für "Linuxer" eigentlich klar sein.

No info could be read for "-p": geteuid()=1000 but you should be root.

Korrekt wäre es unter Ubuntu Standard
sudo netstat -lntup | grep mariadbd

und Debian Standard (ein Beispiel von mehreren!)
su -
netstat -lntup | grep mariadbd
 
ZFS schrieb:
[server]

[mysqld]

bind-address = <deine IP Adresse>
port = <deine Portnummer>
Ist an sich auch nicht korrekt, entweder kommt da localhost rein, oder die IP(s), die von zugreifen dürfen. Soll es für alles zugreifbar sein, kommt 0.0.0.0 rein.
https://mariadb.com/docs/server/mariadb-quickstart-guides/mariadb-remote-connection-guide
bind-address: This directive specifies the IP address the server listens on.


  • By default, for security, many MariaDB packages bind to 127.0.0.1 (localhost). This means the server will only accept connections originating from the server machine itself via the loopback interface. Remote connections will fail.

  • If bind-address is set to 127.0.0.1, attempting to connect from another host, or even from the same host using a non-loopback IP address, will result in errors like:


    Copy
    ERROR 2002 (HY000): Can't connect to MySQL server on 'myhost' (115)
    A telnet myhost 3306 test would likely show "Connection refused."

  • To allow connections from other hosts, you must either comment out the bind-address directive (making MariaDB listen on all available network interfaces, i.e., 0.0.0.0 for IPv4), or set it to a specific public IP address of the server.

  • MariaDB 10.11 and later: bind-address can accept multiple comma-separated IP addresses, allowing the server to listen on specific interfaces while excluding others.
 
@nutrix

Die 127.0.0.99 hat er manuell eingetragen.
Ergänzung ()

---

Zitat: " Mir ist aufgefallen, dass mariadb/mysql auf allen Interfaces statt nur lo antwortet."
 
nutrix schrieb:
Ist an sich auch nicht korrekt, entweder kommt da localhost rein, oder die IP(s), die von zugreifen dürfen. Soll es für alles zugreifbar sein, kommt 0.0.0.0 rein.
 

Ähnliche Themen

B
Antworten
7
Aufrufe
3.683
Zurück
Oben