# linux mysql keine verbindung



## Guest (16. Nov 2004)

ich habe mysql4 installiert (Debian3.0) und zwar nach dieser Vorgehensweise (nicht mit apt-get). 

shell>groupadd mysql 
shell> useradd -g mysql mysql 
shell> cd /usr/local 
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - 
shell> ln -s full-path-to-mysql-VERSION-OS mysql 
shell> cd mysql 
shell> scripts/mysql_install_db 
shell> chown -R root . 
shell> chown -R mysql data 
shell> chgrp -R mysql . 
shell> bin/mysqld_safe --user=mysql & 

(Übrigens: eine my.cnf-Datei gibt es nicht) 
Ein portscan zeigt, dass port 3306 offen ist. Ich konnte mit dem Programm MySQLControlCenter von einem Windows-NT Rechner problemlos auf den Mysql-Server auf dem Debianrechner zugreifen. 

Ich habe dann ein einfaches Java-Programm geschrieben und auf dem debianrechner ausgeführt. 


```
import java.sql.*;

public class Select {
    static public void main(String[] args) {
        try {
            String url;
            Connection conn;
            Statement stmt;
            ResultSet rslt;
            Class.forName("org.gjt.mm.mysql.Driver").newInstance();
            url = "jdbc:msql://localhost:3306/t2";
            conn = DriverManager.getConnection(url, "otto", "geheim");
            stmt = conn.createStatement();
            rslt = stmt.executeQuery("SELECT * FROM Questions");
            while( rslt.next() ) {
                System.out.println("blablblbala");
            }
            conn.close();
        }
        catch( Exception e ) {
        }
    }
}
```

Es kommt die Fehlermeldung 
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.lang.NumberFormatException) 

derMysql-Server läuft definitiv. Usernamen und Passwort stimmen.

danke bye[/code]


----------



## abollm (16. Nov 2004)

Anonymous hat gesagt.:
			
		

> ich habe mysql4 installiert (Debian3.0) und zwar nach dieser Vorgehensweise (nicht mit apt-get).
> 
> ...
> Ich habe dann ein einfaches Java-Programm geschrieben und auf dem debianrechner ausgeführt.
> ...



Ähem, könnte es sein, dass du das das oben gekennzeichnete Wort falsch geschrieben hast?

Ich hätte statt "msql" -> "mysql" geschrieben.


----------



## Guest (16. Nov 2004)

habe falsch getippt.
in wirklichkeit steht dort:  

jdbc:mysql://localhost:3306/meineDatenbank


----------



## Bleiglanz (17. Nov 2004)

vielleicht localhost nicht in der /etc/hosts?

schon mal mit 127.0.0.1 probiert?


----------



## abollm (17. Nov 2004)

Füge einmal zu Beginn deiner Klasse folgende Zeile ein:

```
public static Connection conn = null;
```

und im try...catch-Block die folgende Zeile einfügen, d.h. die vorhandene ersetzen:

```
Class.forName("com.mysql.jdbc.Driver").newInstance();
```

Bei mir hat es dann funktioniert, und zwar sowohl mit "localhost" als auch mit "127.0.0.1".

Hoffe es hilft.


----------



## Bleiglanz (18. Nov 2004)

gut beobachtet 

Das Prog kann doch gar nicht übersetzt werden, weil die lokalen Variablen 

```
String url;
            Connection conn;
            Statement stmt;
            ResultSet rslt;
```
nicht initialisiert sind???


----------



## Jaraz (18. Nov 2004)

Bleiglanz hat gesagt.:
			
		

> gut beobachtet
> 
> Das Prog kann doch gar nicht übersetzt werden, weil die lokalen Variablen
> 
> ...



Das stimmt nicht!


Zum Ersteller:

Warum blendest du mit dem try catch block alle Fehlermeldngen aus?
Das muss mysql und nicht msql heißen.

Wenn du die gepostete Meldung bekommst, führst du was anderes aus.

Gruß Jaraz


----------



## Bleiglanz (18. Nov 2004)

> Das stimmt nicht!


ja- sorry, wieder mal käse gepostet
alle 4 werden ja in den nächsten 4 Zeilen initialisiert 

zum Problem: eigentlich sollte 

java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.ConnectException: Connection refused

kommen, wenn der Server nicht läuft, also liegts möglicherweise an etwas anderem, eine kurze Google suche findet


> 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.


----------



## abollm (18. Nov 2004)

Jaraz hat gesagt.:
			
		

> Zum Ersteller:
> 
> ...
> Das muss mysql und nicht msql heißen.
> ..



Das hatten wir schon. Schau dir einmal die Postings von oben nach unten aufmerksam an. Der Poster hatte bereits geschrieben, dass er sich vertippt hatte.


----------

