Toon posts:

[Tomcat, MySQL] connection denied

Pagina: 1
Acties:
  • 341 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb hier tomcat geinstalleerd op mijn linux debian server. Tomcat werkt perfect op poort 8080. Nu wil ik een connectie maken met me MySQL database die met Apache prima werkt. Hiervoor moest ik een mysql-connector jar file in de $JAVA_HOME/jre/lib/ext directorie copieeren. Ik heb hem ook in tomcat_home/common/lib/ gezet omdat ik dacht dat ergens gehoort te hebben :?

Toen zou het zaakje moeten werken maar dat was niet het geval. Ik moest mysql laten luisteren naar de tcp/ip poort, dit heb ik ook gedaan. Maar ik krijg nu nog steeds een foutbmelding.

Bij het uitvoeren van:
<%@ page language="java" import="java.sql.*" %>
<%
Class.forName("org.gjt.mm.mysql.Driver");
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost/forum?user=root&password=mijn password");
%>

Krijg ik de volgende foutmelding:
exception

javax.servlet.ServletException: Invalid authorization specification, message from server: "Access denied for user: 'root@simonhq' (Using password: YES)"
.......
root cause

java.sql.SQLException: Invalid authorization specification, message from server: "Access denied for user: 'root@simonhq' (Using password: YES)"

Maar ik gebruik toch echt het goede wachtwoord!

Weet iemand wat hier het probleem is, ik kom er echt niet meer uit en kom nu een beetje in tijdnood(voor school :'( )

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22:13
zo te zien mag je niet inloggen als root in mysql ..

Verwijderd

dit probleem heb ik zel ook eens gehad (toen ik wel met Tomcat en MySQL bezig was voor school) Het heeft hoogst waarschijnlijk iets te maken met de user settings van je MySQL als je vanaf de command line inlogd met mysql "database" -u root -p dan tik je je wacht woordt in en gaat het goed. Omdat je standaart instellingen waarschijnlijk zo zijn dat root@localhost en root@localhost.localdomain mag inloggen. Ik heb niet zo'n mega expert in MySQL dus kan het mis hebben maar van uit Tomcat connect de driver het je "domeinnaam" naar mysql dus niet root@localhost maar als root@"domeinnaam" je moet hier: http://www.mysql.com/docu...tration.html#Adding_users maar even lezen hoe het precies zit.

Ohw en bij de way even een tip:

in de WEB-INF folder van je web applicatie kan je een sub dir aanmaken met de naam lib (als die al niet bestaat) alle JAR files die daar in staan worden aan het classpath van je webapplicatie toegevoegt. Dus als je dan ergens een import doet dan "vind" tomat de goede jar er bij en zou hou je ook de JRE en Server vrij van verschillende versie's van de driver. Je kan dan ook makkelijk een nieuwe driver installeren en andere web applicaties hebben dan geen last van jou jar file

De laatste tip: maak een Aparate klasse die alles wat met de Database te maken heeft afhandelt dus alle communicatie, diver laden, query's uitvoeren:

public class DB{
public DB(); <-- hier laad je je driver etc.
public void open(); <-- open een db connectie
public ResultSet exeQuery(String s); <-- voor query uit
public void close(); <-- sluit db!!!
}

Verwijderd

Topicstarter
Bedankt voor de tips, ik zal nog eens gaan kijken. Eerst maar eens die connectie aan de praat krijgen :/

Ik heb gekeken op die pagina maar zie dat ik dit al geprobeert heb. In iedergeval zoiets. zie http://www.mysql.com/docu...or-j/index.html#id2802490
ik heb dus
GRANT ALL PRIVILEGES ON *.* to root@localhost indentified by 'password' en
GRANT ALL PRIVILEGES ON *.* to root@simonhq indentified by 'password' en
GRANT ALL PRIVILEGES ON *.* to root@simonhq.mine.nu indentified by 'password'
uitgevoerd maar dit heeft geen resultaat :(

ps. de voledige error kan je ook zien op http://simonhq.mine.nu:8080/connect.jsp

[ Voor 73% gewijzigd door Verwijderd op 16-12-2003 12:37 ]


  • sirdupre
  • Registratie: Maart 2002
  • Laatst online: 27-04-2025
Probeer eens een extra account aan te maken met mysql_setpermission -u root en vervolgens die te gebruiken om te connecten. Ik had namelijk laatst ook dat ik niet via commandline met -p een wachtwoord mee kon geven als root, terwijl dat bij een gewone mysql user wel lukte.

Verwijderd

Topicstarter
SirDupre schreef op 16 december 2003 @ 12:35:
Probeer eens een extra account aan te maken met mysql_setpermission -u root en vervolgens die te gebruiken om te connecten. Ik had namelijk laatst ook dat ik niet via commandline met -p een wachtwoord mee kon geven als root, terwijl dat bij een gewone mysql user wel lukte.
gedaan. Extra user aangemaakt met volledige rechten op alle databases. Geen effect.

Moet dat GRANT command in de mysql sommandline nog een output geven, want hij geeft nu namelijk niks?

Verwijderd

probeer eens "...grand all on *.* to rool@'%'..." %-betekent zoiets als alle domeinen (let op de single quotes moeten er geloof ik wel instaan)

Verwijderd

Topicstarter
Verwijderd schreef op 16 december 2003 @ 13:33:
probeer eens "...grand all on *.* to rool@'%'..." %-betekent zoiets als alle domeinen (let op de single quotes moeten er geloof ik wel instaan)
Geen effect

Verwijderd

Kijk eens in je mysql logfiles of ie überhaupt wel connectie maakt?

Verwijderd

Topicstarter
Verwijderd schreef op 16 december 2003 @ 13:43:
Kijk eens in je mysql logfiles of ie überhaupt wel connectie maakt?
031216 13:39:22 52 Connect Access denied for user: 'root@simonhq' (Using password: YES)

Het heeft wel iets met die domeinnaam te maken. In apache doet ie gewoon root@localhost en tomcat maakt er root@simonhq van :?

  • mboy
  • Registratie: December 2001
  • Laatst online: 20-06-2024
heb je, nadat je permissies hebt gewijzigd in MySQL de wijzigingen wel geflushed?
zo niet, flushen doe je met 'flush privileges;'.

[ Voor 5% gewijzigd door mboy op 16-12-2003 14:21 ]


Verwijderd

Topicstarter
Wat ik ook doe, mysql geeft de host simonhq geen toegang.

simonhq:/home/simon# mysql -h simonhq -p
Enter password:
ERROR 1045: Access denied for user: 'root@simonhq' (Using password: YES)

Ik blijf dat krijgen :'(

Verwijderd

Topicstarter
Mboy schreef op 16 december 2003 @ 14:21:
heb je, nadat je permissies hebt gewijzigd in MySQL de wijzigingen wel geflushed?
zo niet, flushen doe je met 'flush privileges;'.
heb ik gedaan!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Als je vlak na je post nog wat toe wil voegen, gebruik dan svp Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif, dan kun je je post nog editen, en hoef je niet steeds nieuwe posts te maken.

  • mboy
  • Registratie: December 2001
  • Laatst online: 20-06-2024
hmmz, het zal wel geen drol uitmaken, maar het geven van privileges doe ik altijd met de volgende query: GRANT ALL ON <dbname>.* TO '<username>'@'<host>' IDENTIFIED BY '<passwd>';

Daarna een flush privileges. Maargoed, aangezien jij het rechtstreeks uit de MySQL handleiding hebt gehaald, moet dat natuurlijk ook werken.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 06:03
Hier hebben wij ook een middag mee zitten stoeien, bleek uiteindelijk aan je /etc/hosts file op de server te liggen, daar stond vrolijk iets anders dan alleen localhost bij 127.0.0.1
Als je een beetje op google zoekt zal je dit gewoon vinden, staat erbij dat het alleen bij Redhat 8 optreedt omdat die localhost.localdomain gebruikt. Je slaat jezelf gewoon tegen de kop als je na 100x lezen het dan toch maar es gaat aanpassen en dan blijkt dat het voor jouw andere distro ook zo is :X

Verwijderd

Topicstarter
_JGC_ schreef op 16 december 2003 @ 15:22:
Hier hebben wij ook een middag mee zitten stoeien, bleek uiteindelijk aan je /etc/hosts file op de server te liggen, daar stond vrolijk iets anders dan alleen localhost bij 127.0.0.1
Als je een beetje op google zoekt zal je dit gewoon vinden, staat erbij dat het alleen bij Redhat 8 optreedt omdat die localhost.localdomain gebruikt. Je slaat jezelf gewoon tegen de kop als je na 100x lezen het dan toch maar es gaat aanpassen en dan blijkt dat het voor jouw andere distro ook zo is :X
Ja er staat:
127.0.0.1 simonhq localhost
maar dat is toch heel normaal :?

Verwijderd

maak eens een dump van je mysql.user table en zet die effe op die forum. dit doe je door:

mysql -u root -p
use mysql;
select * from user;

een veld uit die user tabel ziet er bij mij bijvoorbeeld zo uit:

| % | mp3cd | 5fa0536d2309d9bf | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |

de user "mp3cd" kan ik loggen vanaf % (alles dus)

  • xos
  • Registratie: Januari 2002
  • Laatst online: 23-02 14:56

xos

Misschien domme opmerking maar als je nu ipv localhost gewoon 127.0.0.1 in je connectiestring gebruikt? Niet dat het een oplossing is voor je probleem maar misschien een work around.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 06:03
Verwijderd schreef op 16 december 2003 @ 16:14:
[...]


Ja er staat:
127.0.0.1 simonhq localhost
maar dat is toch heel normaal :?
Heb het opgezocht op die bak waar ik destijds servlets op bakte, alhoewel wat jij erin hebt staan niet fout is, en heel normaal is, heb ik er alleen 127.0.0.1 localhost staan, en niet mijn hostname bij staan. Kan zijn dat omdraaien helpt, iig moet localhost vooraan staan, als het dan nog niet lukt gooi je die simonhq eruit.

Ow, en MySQL en wildcards: simonhq matcht niet root@% :P, vreemd maar waar, welkom in de boze wereld van MySQL :r

Verwijderd

Topicstarter
_JGC_ schreef op 17 december 2003 @ 00:11:
[...]


Heb het opgezocht op die bak waar ik destijds servlets op bakte, alhoewel wat jij erin hebt staan niet fout is, en heel normaal is, heb ik er alleen 127.0.0.1 localhost staan, en niet mijn hostname bij staan. Kan zijn dat omdraaien helpt, iig moet localhost vooraan staan, als het dan nog niet lukt gooi je die simonhq eruit.

Ow, en MySQL en wildcards: simonhq matcht niet root@% :P, vreemd maar waar, welkom in de boze wereld van MySQL :r
Ik heb geprobeert simonhq weg te halen maar dat heeft geen effect.

User tabel dump:
| localhost | root | 30599f1725b9f8a2 | Y | Y etc
| simonhq | root | 69f90a5e75bba100 | Y | Y etc
| localhost | debian-sys-maint | 34f147d85750d883 | N | N | N etc

[ Voor 18% gewijzigd door Verwijderd op 17-12-2003 09:08 ]


Verwijderd

probeer eens simonhq te vervangen door % (al is het maar om te kijken of het werkt) je kan dat doen door een nieuwe user toe te voegen (met grand etc) of gewoon updaten van de mysql.user table. met "update user where User = "root" and Host = "simonhq" set Host = "%"; zo iets (kan het verkeerd hebben want ik doe het uit m'n hoofd)

Verwijderd

Topicstarter
Verwijderd schreef op 17 december 2003 @ 11:04:
probeer eens simonhq te vervangen door % (al is het maar om te kijken of het werkt) je kan dat doen door een nieuwe user toe te voegen (met grand etc) of gewoon updaten van de mysql.user table. met "update user where User = "root" and Host = "simonhq" set Host = "%"; zo iets (kan het verkeerd hebben want ik doe het uit m'n hoofd)
Dat had ik al geprobeert, staat al in de vorige posts. Had ook geen effect.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 06:03
Probeer nou nog maar es die /etc/hosts file, heb het niet voor niets aangepast destijds op mijn machine, want alle andere machines staat ook nog de normale host in vermeld bij 127.0.0.1
Pagina: 1