Toon posts:

[debian/woody] mysql wil niet binden aan port 3306

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem:

Ik heb een mysql database, die vanaf localhost (via een socket) en via het netwerk (1.2.3.4:3306) data moet gaan ontvangen.

Op dit moment werkt de socket (eg. kan ik naar connecten) maar wat ik ook doe, mysql wil niet binden aan poort 3306.

Wat heb ik gedaan:
*) Volgens de docs (mysql.com / man / google) zou dat op te lossen moeten zijn door in /etc/mysql/my.cnf een "PORT=3306" regel toe te voegen, wat ik gedaan heb. /etc/init.d/mysql restart of /usr/bin/safe_mysqld & bied geen soelaas
*) /usr/bin/safe_mysqld nagezocht naar de "--skip-networking" flag. Deze flag zou mysqld moeten vertellen dat hij de tcp/ip daemon routines overslaat, waardoor mysqld niet bind aan een port.

Zelf begin ik stilletjes aan te geloven dat er uberhaupt geen tcp/ip ondersteuning zit in deze release van mysql-server. Mischien dat iemand hier zijn licht erover kan werpen, en mij een paar pointers kan geven naar de oplossing...

Ik zit op dit moment niet thuis, dus kan ik helaas geen "hands-on" info verschaffen.

<edit>
voordat de standaard vragen komen:
nee, er draait verder nix op poort 3306
ja, ik heb al de juiste firewall rules om dit toe te laten
ja, tcpwrappers laat de connectie toe
nee, er staat nix interesants in de logboeken
</edit>

Verwijderd

Zelf begin ik stilletjes aan te geloven dat er uberhaupt geen tcp/ip ondersteuning zit in deze release van mysql-server.
eehhmm, voor zover ik weet kan je alleen maar connecten met mysql via een socket. Het lijkt mij daarom sterk dat er geen tcp/ip support in zit.

Verwijderd

Welke foutmelding geeftie precies dan? Tenminste, ik neem aan datie een foutmelding geeft anders weet je niet dat hij niet kan binden aan die port..
En als je een andere port probeert?

Verwijderd

Topicstarter
not true.

een machine van hier (werk):

code:
1
2
3
4
5
6
7
8
9
10
11
[root@machine root]# ps ax|grep mysql
 5104 ?        S      0:00 sh /opt/mysql/bin/safe_mysqld
 5122 ?        S      0:00 /opt/mysql/libexec/mysqld --basedir=/opt/mysql --data
 5124 ?        S      0:59 /opt/mysql/libexec/mysqld --basedir=/opt/mysql --data
 5125 ?        S      0:00 /opt/mysql/libexec/mysqld --basedir=/opt/mysql --data
 2079 pts/2    S      0:00 grep mysql
[root@machine root]# netstat -an|grep LISTEN|grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      
[root@machine root]# cat /etc/services |grep 3306 
mysql           3306/tcp                        # MySQL
mysql           3306/udp                        # MySQL

Verwijderd

Topicstarter
en zoals ik ook al eerder vermelde, mysq.err laat alleen maar zoiets zien als:
"mysql started".

mysqladmin -u root -p version laat ook zien dat er niet naar een poort geluisterd word...
Verwijderd schreef op 10 september 2002 @ 11:48:
[...]

eehhmm, voor zover ik weet kan je alleen maar connecten met mysql via een socket. Het lijkt mij daarom sterk dat er geen tcp/ip support in zit.
socket != port, voorzover ik weet. Dus het zou heel goed kunnen dat sockets wel werken, zelfs als mysql niet is gecompiled met tcp/ip ondersteuning

Verwijderd

een socket is een ip:port combinatie. Je kan met mysql connecten door met de socket <ip_adres>:3306 te connecten.
Ik zou persoonlijk niet weten hoe je anders contact moet maken met mysql.
Wat geeftie bij jou aan met netstat, ps en services dan?

Verwijderd

Topicstarter
k
mysql kun je op 2 manieren benaderen:

1) socket, dit is een file, met een pipe naar mysql. Op mijn systeem is dit /var/lib/db/mysql.socket oid
2) port, dit is een traditionele <ip>:<port> combinatie

optie 1 werkt bij mij perfect, alleen is het niet mogelijk om vanaf het netwerk te connecten naar de socket ('t is een file, geen ip address).
optie 2 wil niet werken.

ps/netstat (uit mijn hoofd, zit nu niet thuis)
code:
1
2
3
4
5
6
7
8
9
# /etc/init.d/mysqld start
# ps ax|grep mysql
...
een hoop mysql processen
....
# netstat -an|grep LISTEN|grep 3306
# tail /var/log/mysql/mysql.err
[datum] mysqld started
#

  • easydisk
  • Registratie: Februari 2000
  • Laatst online: 08-05 17:59
Ik draai ook Debian 3.0 met mysql die erbij zit en:

[/home/alfred]$ telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
,
3.23.49-logTz)[o;yp,

Connection closed by foreign host.

Dat werkt dus wel.
En ook :
netstat -l|grep mysql
tcp 0 0 *:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 685 /var/run/mysqld/mysqld.sock

En in de conf. file

[client]
#password = my_password
port = 3306

[mysqld]
user = mysql
port = 3306
skip-locking
# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
#skip-networking

en let hiet op de laatste regel !

Verwijderd

Topicstarter
hmz, dat is volgens mij de clue waar ik naar op zoek ben... Kan niet wachten tot ik weer thuis ben *_*

dat ik daar overheen gelezen heb ........ |:(

thx

Verwijderd

Aha, er word dan een socket gesimuleerd oid via die file..
Mja, dan is er ergens met de compile of instellingen iets niet goed (duh, ;))
Maar het lijkt me sterk dat ze een mysql server releasen zonder tcp/ip ondersteuning.

Verwijderd

Topicstarter
1) een socket is geen port. Een socket is een file, en heeft nix te maken met tcp/ip. het simuleerd dus nix
2) zie post van easydisk. tcp/ip is standaard disabled voor mysql-server onder debian...

Verwijderd

Tja, dat ligt eraan in welke context je het begrip socket gebruikt. In netwerk begrippen is het een ip:port combinatie.
Een wat meer algemene definitie:
SOCKET:

(1) In UNIX and some other operating systems, a software object that connects an application to a network protocol. In UNIX, for example, a program can send and receive TCP/IP messages by opening a socket and reading and writing data to and from the socket. This simplifies program development because the programmer need only worry about manipulating the socket and can rely on the operating system to actually transport messages across the network correctly. Note that a socket in this sense is completely soft - it's a software object, not a physical component.
Dat verandert natuurlijk nix aan je probleem. Of je moet het in kunnen stellen, of je moet een andere deb hebben, of je compiled hem zelf. Ik compile mysql altijd zelf, ik kan je met deb's of andere binary packages helaas niet helpen dus.
Pagina: 1