PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql und --bind-address=IP funktioniert nicht



Windoofsklicker
18.08.04, 14:27
Hi Folks,

ich habe einen LAMP laufen wo bis jetzt der Zugriff per Iptables reguliert wird. Zusätzlich möchte ich gerne alle Dienste nur auf den Interfaces laufen lassen, wo sie benötigt werden.

Wenn ich nun in der /etc/my.cnf --bind-address=IP eintrage hat das keine Auswirkung. Der SQL Server läuft trotzdem noch auf allen Interfaces.

Was habe ich übersehen?

$kuLL
18.08.04, 15:54
In der my.cnf werden die Optionen ohne -- angegeben.
Also nur bind-address=IP

Wenn du es dem Dämon direkt übergibst, dann mit --

Gruß

Windoofsklicker
19.08.04, 06:36
Sorry, das habe ich zwar oben nicht geschrieben, aber natürlich so gemacht. Leider ohne Erfolg. :(

$kuLL
19.08.04, 10:38
Poste doch mal deine my.cnf
Steht was auffälliges in den Logs beim Starten des mysqld?

Windoofsklicker
19.08.04, 13:19
In /var/log/messages steht nur ganz lapidar gestartet,



#/var/log/mysqld.log

040818 13:41:48 mysqld ended

040818 15:40:13 mysqld started
Cannot initialize InnoDB as 'innodb_data_file_path' is not set.
If you do not want to use transactional InnoDB tables, add a line
skip-innodb
to the [mysqld] section of init parameters in your my.cnf
or my.ini. If you want to use InnoDB tables, add to the [mysqld]
section, for example,
innodb_data_file_path = ibdata1:10M:autoextend
But to get good performance you should adjust for your hardware
the InnoDB startup options listed in section 2 at
http://www.innodb.com/ibman.html
/usr/libexec/mysqld: ready for connections




/etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib
#bind-address=127.0.0.1

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
bind-address=127.0.0.1

$kuLL
19.08.04, 14:10
Muss das nicht zum mysqld?


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address=127.0.0.1

[mysql.server]
user=mysql
basedir=/var/lib

Hast du es so schon versucht?

Windoofsklicker
19.08.04, 19:55
naja.. ich habe beide varianten probiert und es sogar noch bei beiden gleichzeitig angegeben.... :(

$kuLL
19.08.04, 23:43
Darf ich mal fragen wie du das getestet hast, ob der mysqld auf allen Interfaces läuft?

Windoofsklicker
20.08.04, 07:05
Mit nmap.
Ich bin davon ausgegangen, dass mit der Option bind-address=127.0.0.1 auf dem eth0-Interface sql nicht mehr auftaucht, wie das z.B. bei Samba der Fall ist.

$kuLL
20.08.04, 10:48
Du willst also den mysqld nur auf lokale Anfragen beschränken, sehe ich das richtig?
Wenn ja, dann ist skip-networking die richtige Option für dich.

Windoofsklicker
20.08.04, 16:54
Nun ja, auf lokale Anfragen schon, aber nicht auf Unix-Sockets.
Es sollte schon eine TCP connection werden, allerdings nur auf dem Loopback Interface.

Ich habe zur Sicherheit nochmal das bind-address in beiden Sektionen abwechselnd eingetragen. Allerdings bringt das nix.

Die Frage ist nur, ob der Eintrag wie bei Samba bewirkt, dass kein TCP Port "geöffnet" wird oder ob lediglich alle Anfragen abgelehnt werden.

$kuLL
20.08.04, 22:03
Das kann ich dir leider auch nicht sagen, dazu ist diese Thematik zu schlecht dokumentiert. Du könntest höchstens mal ein bißschen in den Sourcen rumstöbern.

Aber ich denke das Ziel, den mysqld nur von localhost erreichbar zu machen, hast du ja mittels iptables und skip-networking erreicht.

Also wozu sich noch lange damit den Kopf zerbrechen ;D