[Java] JDBC -> MySQL Connectie lukt niet

Pagina: 1
Acties:

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Ik probeer een jdbc connectie met mysql te maken (mmmysql jdbc drivers geladen).

Dit is mij gelukt op mijn locale test machine, maar nu moet hij op een server draaien, waar 4 ip adressen op geregistreerd zijn.

De foutmelding:
code:
1
java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.net.ConnectException)

De MySQL daemon runt op poort 3306.

als je 'mysql -p' aanroept, password invoert connect deze wel. telnet kan de mysql-poort ook niet berijken (connection refused)

telnetten naar het IP adres ipv 'localhost' lukt niet. net zoals 127.0.0.1, of andere ip adressen van de host.

er mag geconnect worden vanaf localhost en van '%' (alle ip adressen), maar dit helpt ook niet.

nu is er een vermoeden dat mysql dus niet kan zien waar vandaan geconnect wordt, omdat er meerdere ip adressen naar die host lopen, maar dat lijkt me stug, aangezien er al geen connectie naar toe kan worden gemaakt.

heeft iemand enig idee hoe dit kan?

Verwijderd

Volgens mij heb je hier wel wat aan:
http://dbforums.com/t368321.html
It sounds like the sandbox is kicking into action. Check for a catalina.policy file
that is restricting your access and see if there is something that you
inadvertently changed.

I've not run into this before, but it sounds like it might be the source of
the problem.

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op zondag 09 juni 2002 22:26 schreef webskipper het volgende:
Volgens mij heb je hier wel wat aan:
http://dbforums.com/t368321.html
[..]
mag je mij vertellen wat catalina.policy is :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Jij hebt waarschijnlijk je MySQL niet restarted / geflusht. Dan is die wijziging nog NIET ingegaan :D

Verwijderd

Op zondag 09 juni 2002 22:29 schreef Scorpion het volgende:

[..]

mag je mij vertellen wat catalina.policy is :)
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/security-manager-howto.html
The security policies implemented by the Java SecurityManager are configured in the $CATALINA_HOME/conf/catalina.policy file. This file completely replaces the java.policy file present in your JDK system directories. The catalina.policy file can be edited by hand, or you can use the policytool application that comes with Java 1.2 or later.

Entries in the catalina.policy file use the standard java.policy file format, as follows:


// Example policy file entry

grant [signedBy <signer>,] [codeBase <code source>] {
permission <class> [<name> [, <action list>]];
};

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
mysql restarten voor een nieuwe gebruiker die je aangemaakt hebt lijkt me stug, en hij werkt verder prima met php en de mysql-client die er standaard bij zitten.

verder heeft het volgens mij niet iets te maken met java policy's (sandbox) want zelfs telnet kan em niet berijken :(

Verwijderd

Op zondag 09 juni 2002 22:35 schreef Scorpion het volgende:
mysql restarten voor een nieuwe gebruiker die je aangemaakt hebt lijkt me stug, en hij werkt verder prima met php en de mysql-client die er standaard bij zitten.

verder heeft het volgens mij niet iets te maken met java policy's (sandbox) want zelfs telnet kan em niet berijken :(
Dan heb ik ook geen idee..
Probeer het anders iig gewoon ff... :+

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum.... Er komen vaker topics langs met moeilijkheden over meerdere IPs op 1 machine als je naar een bepaalde service moet connecten vanuit Java... Wat is je database URL?

Ik heb even in de source van MySQL gekeken en de socket wordt op deze manier aangemaakt (_host is String uit je database URL):
code:
1
_mysqlConnection = new Socket(_host, _port);

Je probleem is hierdoor gereduceerd tot het aanleggen van een Socket naar een bepaalde host string. Zodra dat gelukt is, werkt de MySQL driver ook (verwacht ik).

Misschien helpt het als je expliciet localhost opgeeft als host in je database URL:
code:
1
jdbc:mysql://localhost/db-name

Zelf heb ik een kleine connectie library geschreven waarbij de driver en het account geconfigureerd kunnen worden in XML files. De locatie wordt daarbij aangegeven via een InetAddress en dat werkt een stuk makkelijker en duidelijker dan een Stringetje, maar ja...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op zondag 09 juni 2002 22:38 schreef webskipper het volgende:

[..]

Dan heb ik ook geen idee..
Probeer het anders iig gewoon ff... :+
er is nergens een catalina.conf te vinden....

Verwijderd

Op zondag 09 juni 2002 22:40 schreef Scorpion het volgende:

[..]

er is nergens een catalina.conf te vinden....
Gebruik je wel tomcat?... :P
Staat zeker weten niet in $CATALINA_HOME/conf/ ????

Verwijderd

Op zondag 09 juni 2002 22:40 schreef mbravenboer het volgende:
Hum.... Er komen vaker topics langs met moeilijkheden over meerdere IPs [...]
makkelijker en duidelijker dan een Stringetje, maar ja...
In mijn hierboven geposte url ( http://dbforums.com/t368321.html ) gaf die gast als oplossing:
I solved the problem by granting socket connect permission in the catalina.policy file.
Kan dat dus de reden zijn waarom de socket geen verbinding maakt?.. Geen permissie...

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op zondag 09 juni 2002 22:42 schreef webskipper het volgende:

[..]

Gebruik je wel tomcat?... :P
Staat zeker weten niet in $CATALINA_HOME/conf/ ????
geen tomcat. gewoon de jdk.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op zondag 09 juni 2002 22:18 schreef Scorpion het volgende:
als je 'mysql -p' aanroept, password invoert connect deze wel. telnet kan de mysql-poort ook niet berijken (connection refused)

telnetten naar het IP adres ipv 'localhost' lukt niet. net zoals 127.0.0.1, of andere ip adressen van de host.

er mag geconnect worden vanaf localhost en van '%' (alle ip adressen), maar dit helpt ook niet.
Als je al niet kan telnetten dan is het gewoon simpel geen access voor 'buiten'. Ik neem aan dat je net de update query op MySQL hebt gedaan in de usertabel? Dan moet je nog flushen of rebooten. En dat is geen sterk verhaal :+

Maar zodra het nog niet met telnet werkt, dan is het verspilde moeite om met Java te gaan zoeken!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Uit de melding maak ik op dat het niets met permissies te maken heeft: er kan simpelweg geen connectie gemaakt worden en waarschijnlijk heeft dat iets te maken met de meerdere IPs.

Ik begrijp dat je wel kan telnetten naar 'locahost' (?), dus dat geeft denk ik aan dat je de oplossing echt moet zoeken in hetgene wat ik eerder zei...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Sorry, kan je niet verder helpen... :'(
Succes nog! :o

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Hij geeft juist aan dat het niet kan. Dus de zut zit toch echt mis met MySQL imho.

Hier even wat van mijn eigen bak. Eerst een telnet naar de localhost en dan naar het IP. Het eerste mag, tweede niet
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#telnet localhost 3306
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost
Escape character is '^]'.
<
2.23.46
Connection closed bij foreign host.

#telnet 213.xxx.xxx.xxx 3306
Trying 213.xxx.xxx.xxx
Connected to 213.xxx.xxx.xxx
Escape character is '^]'.
K Host 'bla.bla.com' is not allowed to connect to this MySQL. Serverconnection closed by foreign host.

Als je output niet een beetje overeenkomt, dan zou de firewall ook nog problemen op kunnen leveren.

Even voor de record: Dit is een bak met 5 IP's en dus wel aardig representatief :)

BTW als die IP's gewoon resolven naar de opgegeven hostname, moet er geen probleem zijn in MySQL met connecten :?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Scorpion: telnetten naar het IP adres ipv 'localhost' lukt niet. net zoals 127.0.0.1, of andere ip adressen van de host.
Hieruit maak ik op dat telnetten naar localhost dus wel lukt (en 127.0.0.1 niet, maf..) en dat je zo dus ook een socket aan zou moeten kunnen leggen.

Maar goed, ik weet niet wat Scorpion precies bedoelt, dat kan hij vast zelf het beste aangeven ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
pfff, het bleek dus debian related te zijn, vandaar dat het hier wel werkte (redhat)

http://www.opencms.com/majordomo/opencms-dev/0111/msg00095.html
On Wed, 21 Nov 2001, Davin S. George wrote:

> From: Davin S. George <davin@kiwifokes.com>
>
> Hi Fredrik,
>
> I suspect your problem is actually MySQL related.
[snip snip]

Yes it was.

Debian mysqld policy is to not listen on port 3306 (even though
port was set in /etc/mysql/my.cnf). I had to comment out
" skip-networking" in the config file to make mysql listen on
both sockets and an TCP/IP port.

Now the ocsetup works like a charm. I really look forward to
evaluating OpenCMS solution. Time to start digging into user
docs now... =)

Tanks!
allemaal bedankt!
Pagina: 1