Avatar billede mik28 Seniormester
17. september 2005 - 15:13 Der er 46 kommentarer og
1 løsning

problem med at komme i kontakt med min database

Hej Eksperter,

Jeg forstår ikke hvorfor jeg ikke kan få kontakt til min database. Jeg har oprettet en bruger på følgende måde

GRANT ALL PRIVILEGES ON MINDATABASE.* TO 'MINBRUGER'@'%' IDENTIFIED BY 'MITPASSWORD';

og ser også ud til at virke, men når jeg prøver at connecte, via MySQL front så bliver jeg afvist.
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:14 #1
Har du sagt "flush privileges" (eller genstartet mysql) ?
Avatar billede mik28 Seniormester
17. september 2005 - 16:17 #2
begge dele :-)
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:19 #3
Din mysql-version?  Og prøver du at forbinde fra samme maskine som mysql kører på, eller fra en anden?
Avatar billede mik28 Seniormester
17. september 2005 - 16:21 #4
MySQL version 4.1.11 og jeg prøver at forbinde fra en anden maskine (192.168.1.5)
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:23 #5
Ok, så er der
1) Noget med en ny, og sikrere, måde at håndtere passwords på, men
2) det første er nok en firewall, der blokerer. Dine OS'er ?
Avatar billede mik28 Seniormester
17. september 2005 - 16:26 #6
Den jeg sidder på er en w2k og MySQL ligger på en Mandrake 10.2. Jeg bruger Guarddog på Mandrake, men har åbnet internt og eksternt
Avatar billede mik28 Seniormester
17. september 2005 - 16:28 #7
Det skal siges at jeg godt kan få kontakt via webmin
Avatar billede mik28 Seniormester
17. september 2005 - 16:29 #8
Problemet er faktisk at jeg ikke kan få forbindelsen til at virke i en JAVA app.
Avatar billede mik28 Seniormester
17. september 2005 - 16:35 #9
Men jeg kan heller ikke få det til at virke igennem MySQL front
Avatar billede mik28 Seniormester
17. september 2005 - 16:44 #10
Det er lidt for mærkeligt. Jeg kan heller ikke connecte direkte på maskinen med det brugernavn og password jeg har angivet
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:48 #11
Ok, lad os tage et par trin af gangen.

1) Prøv med
          telnet 192.168.1.xxx 3306
  i en dos-prompt, for at se om der overhovedet er noget der svarer. Nogle, meget
  fornuftige og sikre, opsætninger af mysql har simpelt slået muligheden for forbindelse
  via port 3306 helt fra.

  Prøv ovenstående på begge maskiner.
Avatar billede mik28 Seniormester
17. september 2005 - 16:51 #12
Det kunne man ikke på nogle af maskinerne
Avatar billede mik28 Seniormester
17. september 2005 - 16:52 #13
connection refused
Avatar billede erikjacobsen Ekspert
17. september 2005 - 16:52 #14
Så skal du til at grave lidt i konfigurationsfilerne for mysql. Port 3306 (networking hedder det vist) er nok helt slået fra.
Avatar billede mik28 Seniormester
17. september 2005 - 16:58 #15
Nu er jeg ikke den store haj til Linux. Kan du komme med et bud på hvor jeg skal kigge
Avatar billede mik28 Seniormester
17. september 2005 - 17:23 #16
Jeg kan slet ikke finde ud af hvad problemet er. Jeg har kigget i my.cnf men der står intet om noget der skulle være lukket
Avatar billede erikjacobsen Ekspert
17. september 2005 - 17:57 #17
Står der i en linie noget med "networking" ?
Avatar billede mik28 Seniormester
17. september 2005 - 17:58 #18
Det står der intet om
Avatar billede erikjacobsen Ekspert
17. september 2005 - 19:19 #19
Ok, jeg kan se een linie i min my.cnf der hedder

#skip-networking


Har du een der ligner?
Avatar billede mik28 Seniormester
17. september 2005 - 20:48 #20
desværre ikke
Avatar billede erikjacobsen Ekspert
17. september 2005 - 20:52 #21
Mnjohjahhmm. Hvad står der så i din my.cnf ?
Avatar billede mik28 Seniormester
17. september 2005 - 20:59 #22
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with old and
# shorter password hash.
# Reference: http://dev.mysql.com/doc/mysql/en/Password_hashing.html
old_passwords=1

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

[mysqld_safe]
err-log=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

~
~
Avatar billede mik28 Seniormester
17. september 2005 - 21:09 #23
Der står ikke andet
Avatar billede mik28 Seniormester
17. september 2005 - 21:13 #24
Der er iøvrigt rimeligt syret. Før fik jeg en fejlside, nu får jeg den rigtige side bare med fejlen øverst på siden.

http://www.flexbreeze.dk/

tryk på login, og så på login
Avatar billede erikjacobsen Ekspert
17. september 2005 - 21:13 #25
Ja, så er der ikke forbindelse på port 3306. Der er ikke andre configurationsfiler, eller eksempler?
Avatar billede mik28 Seniormester
17. september 2005 - 21:15 #26
ikke så vidt jeg ved
Avatar billede mik28 Seniormester
17. september 2005 - 21:18 #27
Det er bare meningen at localhost skal have forbindelse
Avatar billede mik28 Seniormester
17. september 2005 - 21:18 #28
Der er jo hosts.allow og hosts.deny filerne
Avatar billede mik28 Seniormester
17. september 2005 - 21:21 #29
Kan det være det som er galt
Avatar billede erikjacobsen Ekspert
17. september 2005 - 21:34 #30
Nu forstår jeg ikke lige: før fik jeg indtryk af at du sad ved een maskine, med en klient, og ville forbinde dig til mysql på en anden maskine. Nu siger du at den bare skal virke på localhost?
Avatar billede mik28 Seniormester
17. september 2005 - 21:41 #31
i princippet er der tale om en maskine som skal kunne tilgå MySQL lokalt via JDBC. Det er faktisk ikke meningen at der skal være forbindelse på andre måder. I midlertid har jeg jo ikke været i stand til at få det til at virke.
Avatar billede mik28 Seniormester
17. september 2005 - 21:43 #32
Det gør mig ikke så meget hvis der er adgang udefra. Jeg lader jo bare være med at portforwarde i min router
Avatar billede erikjacobsen Ekspert
17. september 2005 - 21:43 #33
Ok - med jdbc? Din connectionstring (uden password)?
Avatar billede mik28 Seniormester
17. september 2005 - 21:45 #34
Databaseforbindelsemysqlprepared d = new Databaseforbindelsemysqlprepared("jdbc:mysql://localhost/DB?user=MINBRUGER&password=MITPASSWORD", "com.mysql.jdbc.Driver");
Avatar billede erikjacobsen Ekspert
17. september 2005 - 21:47 #35
Yeah, well, som man siger: "Java doesn't support unix domain sockets."
En skam, da der ikke er grund til at åbne porte uden grund. Men lad os se hvad der
skal til. Prøv at tilføje

port            = 3306

i din my.cnf fil. Der skal nok genstartes.
Avatar billede mik28 Seniormester
17. september 2005 - 21:47 #36
Jeg har gjort det 100 gange før. Forskellen er at jeg nu bruger mod_jk så Apache arbejder sammen med Tomcat
Avatar billede mik28 Seniormester
17. september 2005 - 21:53 #37
Jeg har tilføjet linien og jeg rebooter hele maskinen
Avatar billede mik28 Seniormester
17. september 2005 - 21:54 #38
Før har jeg kørt Tomcat som standalone, men jeg vil også gerne supportere PHP
Avatar billede mik28 Seniormester
17. september 2005 - 22:02 #39
Har jeg behov for en nyere JDBC driver
Avatar billede mik28 Seniormester
17. september 2005 - 22:02 #40
Den jeg bruger nu hedder mysql-connector-java-3.0.17-ga-bin.jar
Avatar billede mik28 Seniormester
18. september 2005 - 10:17 #41
Jeg har prøvet at tilføje linien i my.cnf, men det hjalp ikke. Jeg har også prøvet at hente en nyere JDBC driver, det hjalp heller ikke.
Avatar billede mik28 Seniormester
18. september 2005 - 13:12 #42
Det var en linie i /etc/sysconfig/mysqld ... --skip-networking der var problemet. Desværre løste det ikke mit problem med JDBC, for det virker stadigvæk ikke. Så vidt jeg ved skal driveren ligge i /WEB-INF/lib. Det underlige er bare at hvid jeg fjerner den derfra så får jeg stadigvæk en exception
Avatar billede erikjacobsen Ekspert
18. september 2005 - 14:09 #43
Ok, men du skal også prøve
1) telnet-eksemplet ovenfor (check om der overhovedet er forbindelse)
2) En anden mysql-klient (check om du kan logge ind)

Når de 2 er i orden så kan vi jo kigge på jdbc.
Avatar billede mik28 Seniormester
18. september 2005 - 16:14 #44
Jubiii. Fejlen er fundet. Jeg skulle bare skrive min klasse lidt om, så virkede det :-)
Avatar billede mik28 Seniormester
18. september 2005 - 16:16 #45
public Databaseforbindelsemysqlprepared(String driver, String data, String user, String password)
    {
       
        try
        {
            Class.forName(driver);
            conn = DriverManager.getConnection(data, user, password);
           

        }
        catch(Exception s)
        {
            System.out.println("SQL dataforbindelse fejlede"+s);
        }   
    }
Avatar billede mik28 Seniormester
18. september 2005 - 16:17 #46
Tak for hjælpen :-)
Avatar billede mik28 Seniormester
15. oktober 2005 - 08:17 #47
Jeg lukker :-)
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