Avatar billede mixeren Nybegynder
14. september 2005 - 23:40 Der er 7 kommentarer og
1 løsning

Connect mellem to maskiner fejler.

Har følgende test setup: Webserver med php apache osv. Køre på en "debian woody". Mysql server, køre på "debian sarge". Begge maskiner sidder på samme lokalnet og nogen former for firewall imellem.

Fra webserveren er det ikke muligt at connecte til databasen, den siger bare at den ikke findes. Prøver jeg direkte fra database serveren køre den fint.

Ifølge my.cnf er debian gået væk fra funktionen "skip-networking", istedet benytes "bind-address" den er sat til 127.0.0.1 altså localhost. Det vil vel sige at den kun lytter på sig selv. Sætter jeg den til samme ip som webserveren, vil mysql ikke starte op.

Hvordan løses det?
Avatar billede hmortensen Nybegynder
15. september 2005 - 08:19 #1
Så vidt jeg husker, kan du blot udkommentere den linie, og så vil den lytte på alle interfaces i maskinen.
Avatar billede mixeren Nybegynder
15. september 2005 - 08:45 #2
Kommentaren til bind-address er:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

Det læser jeg som der skal angives et eller andet.

Fjerner jeg den, starter mysql godt nok op men den giver stadig fejl når man forsøger at connecte til den fra et php script.:
Warning: Can't connect to MySQL server on 'lokal ip' (111) in /home....
Det betyder da normalt bare at den ikke køre ik'? Hvilken den jo sådan ser heller ikke gør set fra webserverens side.

Har også prøvet at sætte to linjer, en på local og en på den anden ip. Det giver samme fejl under opstart som hvis jeg bare sætter den til at lytte på en ip, nemlig:

'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Mappen "/var/run/mysqld" er tom.

Jeg var igår ved at læse om det der "sock" men det faktisk sort snak. Hvis det har relevans for mit problem vil jeg sætte pris på en dansk forklaring.
Avatar billede hmortensen Nybegynder
15. september 2005 - 08:57 #3
Jeg har lige tjekket opsætningen på 2 forskellige servere.

På den ene er den udkommenteret, og på den anden er den sat sådan her: 127.0.0.1, 192.168.1.10

Jeg kan connecte direkte til begge to.
Avatar billede mixeren Nybegynder
15. september 2005 - 11:18 #4
I /etc/mysql/my.cnf har jeg så nu:
bind-address = 127.0.0.1, 10.0.0.6
Altså localhost og webserverens ip.
Efter genstart af mysql, brokker den sig nu ikke.

På webserveren har jeg en simpel php fil:
$db=mysql_connect("10.0.0.31","brugernavn","password");
(Har også prøvet med ":3306" efter ip nummeret.)

Den siger præcis det samme som før, ingen kontakt.
Jeg kan ikke se at der skulle være noget forkert i det.
Avatar billede hmortensen Nybegynder
15. september 2005 - 12:04 #5
Det skal ikke være webserverens IP, men mySQL serverens.

bind-address er de interfaces serveren skal lytte på.
Avatar billede mixeren Nybegynder
16. september 2005 - 09:19 #6
Aha... altså 10.0.0.31 begge steder.

Det er desværre samme resultat. Er vi ved at nå der til hvor det må være noget andet der blokerer? Det kan ikke være i php på webserveren der er noget galt vel?
Avatar billede mixeren Nybegynder
24. oktober 2005 - 11:57 #7
At adskille to ip nummere med komma, virkede ikke. Istedet virkede det at udkommendere den. Tak for hjælpen, smid et svar hmortensen. :-)
Avatar billede hmortensen Nybegynder
24. oktober 2005 - 21:02 #8
Godt du fik det til at virke :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester