Laden...

Problem mit MySql Verbindung

Erstellt von Fanatic-Design vor 17 Jahren Letzter Beitrag vor 17 Jahren 11.050 Views
F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren
Problem mit MySql Verbindung

Hallo Leute,

Bin ein absoluter Anfänger in C#, habe aber schon mit PHP&MySql gearbeitet.

Habe mir schon ein paar Bücher zu C# gekauft und bin gerade ein bisschen beim Probieren.

Nun zu meiner Frage:

Ich habe mir von der MySql - Site den .NET Connector geholt. Der funktioniert auch wunderbar, wenn ich als Server den "localhost" angebe. Sobald ich aber auf eine entfernte Datenbank zugreifen will, bekomme ich folgende Exception:
"Eine Auforderung zum Senden oder Empfangen wurde verhindert, da der Socket nicht verbunden ist (beim Senden über einen Datenstammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde."

Habe schon überall im Forum gesucht, aber keine Lösung gefunden.

Muss ich beim ConnectionString ausser server,uid,pwd,database nochetwas angeben?

Vielen Dank für die Hilfe im Vorraus.

MFG Fanatic

1.820 Beiträge seit 2005
vor 17 Jahren

Hi!

Lies' mal den Beitrag:
SecurityException

Geht dabei weniger um die Meldung, als um das Phänomen verteilter Anwendungen unter .NET und die damit verbundenen Einstellungen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Danke für den Link, hat mir aber nicht weitergeholfen.

Habe jetzt mal meine Firewall ausgeschalten, aber es funktioniert trotzdem nicht.

Hier mal mein ConnectionString:

myConnectionString = "server=mysqlsvr02.world4you.com;uid=fanaticdesigncom;" + "pwd=passwort;database=test;";

Sobald ich als server Localhost eingebe funktioniert alles wunderbar und ich kann die Daten auslesen, ändern, usw.

Wenn ich aber den oben genannten ConnectionString verwende, verbindet er nicht mal zur MySql-DB.

S
1.047 Beiträge seit 2005
vor 17 Jahren

kann es sein das deine datenbank auf dem webserver nur lokal zu erreichen ist?

so ist das eigentlich üblich. d.h. du kannst die datenbank nur vom webserver selbst aus ansprechen.
z.b. wenn dort ein apache läuft mit php, kannst du von php über localhost auf die datenbank zugreifen, aber nicht extern über die ip...

was genau für eine fehlermeldung bekommst du denn?

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Danke, jetzt glaube ich hast du mir schon die Antwort gegeben.

Ich kann nämlich mit MySQL-Front auch nicht auf die entfernte Datenbank zugreifen, sondern nur über phpMyAdmin.

Auf dem Webserver läuft ein Apache, deshalb kann ich auch ohne Probleme mit PHP auf die Datenbank zugreifen.

Aber wenn auf dem Webserver kein Apache läuft, dann kann ich über die IP auf die Datenbank zugreifen?

42 Beiträge seit 2004
vor 17 Jahren

Original von Fanatic-Design
Danke, jetzt glaube ich hast du mir schon die Antwort gegeben.

Ich kann nämlich mit MySQL-Front auch nicht auf die entfernte Datenbank zugreifen, sondern nur über phpMyAdmin.

Auf dem Webserver läuft ein Apache, deshalb kann ich auch ohne Probleme mit PHP auf die Datenbank zugreifen.

Aber wenn auf dem Webserver kein Apache läuft, dann kann ich über die IP auf die Datenbank zugreifen?

Hallo,
Das Problem ist wahrscheinlich, dass du dich mit deinem Benutzernamen nur über eine 'localhost' Verbindung anmelden kannst, Alles andere wird nicht funktionieren.

Die einzige Lösung sind Administrationsrechte um so dem Benutzer auch Remotezugriff zu ermöglichen.

Gruß

S
1.047 Beiträge seit 2005
vor 17 Jahren

Aber wenn auf dem Webserver kein Apache läuft, dann kann ich über die IP auf die Datenbank zugreifen?

Nein.

Grunsätzlich mußt du unterschedien zwischen Webserver und Datenbankserver. Diese beiden Anwendungen haben nichts miteinander zu tun und könne unabhängig von einander laufen. (sagt schon das Wort Server im Namen).

Der Datenbankserver läuft lokal auf dem gleichen System wie dein Webserver.
Er wird warscheinlich nur über localhost ansprechbar sein, d.h. nur von dem Rechner wo er installiert ist.
Das heißt für dich du kommst von außen nicht auf den Datenbankserver drauf.
Um ihn von Außen ansprechbar zu machen muß man das am System einstellen. Und das wird die kein Provider machen. Bei nem Root-Server geht das, da man den ja selbst Administriert^^
Würd ich aber nicht empfehlen...

Da der Apache (Webserver) auf dem gleichen Rechner läuft wie dein Datenbankserver, klappt der Zugriff über localhost.
phpMyAdmin ist ja ein Script was auf deinem Webserver läuft und daher lokal auf deine Datenbank zugreifen kann.

Ich weiß nun nicht was du mit der Datenbank vor hast. Du könntest einen Webservice schreiben der auf dem Webserver läuft (z.B. geschrieben in PHP). Über den kannst du mit der Datenbank dann Daten austauschen.
Einfaches Mittel wäre auch ein stinknormales PHP Script...

Das die Datenbankserver nur lokal ansprechbar sind ist übrigens normal.
Zum einen ist es wegen der Sicherheit (keiner kann von außen drauf zu greifen) und zum anderen zwecks Mißbrauch der Provider (Traffic etc.)

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Tja, aber diese Admin-Rechte werde ich wohl kaum vom Webserverbetreiber bekommen.

Dann muss ich mir wohl oder übel einen eigenen Server bei uns im Büro installieren und auf den MySQL packen und mir dann Admin-Rechte vergeben.

Das gehört zwar nicht hier her aber, kann ich eigentlich auf einem Server PHP&MySQL, ASP.NET und eine MS Datenbank gleichzeitig laufen lassen?

Dann würde sich nämlich die anschaffung eines Servers rentieren.

S
1.047 Beiträge seit 2005
vor 17 Jahren

Das gehört zwar nicht hier her aber, kann ich eigentlich auf einem Server PHP&MySQL, ASP.NET und eine MS Datenbank gleichzeitig laufen lassen?

Müßte gehen. Weiß zwar nicht wie performant das Ganze dan noch ist... aber das ist ein anderes Thema^^
Mußt dann nur aufpassen das sich niemand mit den Ports überschneidet.

  • PHP brauch einen Webserver -> IIS oder Apache müßte da funktionieren
  • MySQL is ein eigenständiger Serverdienst und läuft deswegen auch
  • MS SQL Server -> das gleiche wie bei MySQL
  • ASP.NET brauh auch einen Webserver -> IIS oder Apache+spezielle Module (mußt mal schaun)

Die Datenbankserver kann man auch auf einen separaten Rechner laufen lassen, so verteilt man die Last besser. Kommt halt drauf an was du anstellen möchtest.

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Eigentlich will ich mit der DB nicht sehr viel anfangen.

Ich möchte den Server nur für mich und meine freunde benutzen, damit wir dort unsere Websites und sonstige Daten ablegen können.

Weiters möchte ich die DB für div. Programme die ich zur Zeit schreibe bzw. schreiben werde nutzen. Ein Bsp. dafür wäre ein Stunden-/Mitarbeiterverwaltungsprogramm für unser Büro, eine DVD-Sammlung, usw.

Hoffe nur, dass dieser Server nicht zu teuer wird.

T
10 Beiträge seit 2006
vor 17 Jahren

Normalerweise sind Datenbanken für den Zugriff von außen gesperrt.
Zumindest ist bei meinem Hoster so.
Wenn ich auf eine bestimmte Datenbank zugreifen möchte - ne kurze Mail mit dem
Namen der entsprechenden Datenbank die ich freigeschaltet haben möchte und
5 Minuten später kann ich loslegen.

Grüße ToBSn

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Danke für den Tipp.

Werde mal meinem Hoster eine Mail schichen und nachfragen ob sie die DB für mich freischalten.

Wenn das klappt, dann hast du mir sehr geholfen, andernfalls muss ich mir halt selber einen Server zusammenbaun.

S
1.047 Beiträge seit 2005
vor 17 Jahren

Original von Fanatic-Design
Weiters möchte ich die DB für div. Programme die ich zur Zeit schreibe bzw. schreiben werde nutzen. Ein Bsp. dafür wäre ein Stunden-/Mitarbeiterverwaltungsprogramm für unser Büro, eine DVD-Sammlung, usw.

Das könntest du über Webservices(rel. einfach) machen oder eben normale PHP-Scripte die du von deinem Programm aus aufrufen kannst... Parameter kannst ja dann über POST übergeben... is halt bissl umständlich aber machbar (und konstengünstiger als eigner Server)

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Habe gerade eine Mail an den Hoster gesendet, mal sehen, was der dazu sagt.

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

So der Hoster hat nun meine Mail bekommen, hoffe, dass alles funktioniert. Ich denke das einzige was noch Probleme machen könnten, wäre die Firewall. Hat jemand damit schon mal Erfahrungen gemacht?

S
1.047 Beiträge seit 2005
vor 17 Jahren

was für ein problem soll es mit der firewall geben?
gegebenen falls eben die benötigten ports frei geben

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

soweit war ich auch schon, aber muss ich da im connectionstring etwas berücksichtigen?

S
1.047 Beiträge seit 2005
vor 17 Jahren

soweit war ich auch schon, aber muss ich da im connectionstring etwas berücksichtigen?

nein, da mußt du nichts ändern
da trägst du einfach die ip und den eventuellen port deines mysql servers sowie den nutzer und sein passwort ein
also genau so wie du das jetzt auch schon machst

mal paar infos zur firewall
http://de.wikipedia.org/wiki/Firewall

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

danke für die info.

werde es mal versuchen und normalerweise müsste es dann auch funktionieren, wenn nicht, dann werde ich es sicher posten.

563 Beiträge seit 2004
vor 17 Jahren

Denke kaum, dass der Hoster dem Server die Beine spreitzt, damit alles rein und raus kann. Aus Sicherheitstechnischen Gründen wird diese remote-Sperre nicht nur Softwaremässig abgesichert sein, sondern auch Hardware.

Guck mal bei MySQL-Front, in deinem Installationsverzeichnis liegt ne php Datei, ich glaube die heisst phpMySQL.php. MySQL Front schickt die Querys an dieses Script, welches das Query lokal auf dem Webserver ausführt und das Resultat in XML zurückschickt. Jetzt brauchst du nur noch zu wissen, wie du dieses Tunnelingscript ansprechen musst. Vieleicht gibts ne Doku, wenn nicht such mal im Internet, vieleicht gabs jemand, der eine solche Schnittstelle programmiert hat. Wenn nicht, dann bleibt dir nur noch eine möglichkeit: schau dir den Code des PHP Scriptes an 🙂

Ich brauche auch eine solche Schnittstelle, aus Zeitgründen konnte ich allerdings mich noch nicht damit beschäftigen. Mein Projekt wäre sicher Open-Source.

Gruss,
.unreal

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

habe meinem hoster eine mail geschickt und der schreibt, dass er nur meine ip braucht und mir dann einen zugriff freigibt.

563 Beiträge seit 2004
vor 17 Jahren

nur ist deine ip nicht Statisch 🙂 Und was ist, wenn die Applikation von einem anderen Computer aus benutzt wird?

Wenn du die Anwendung immer von einem Computer aus startest, aber keine statische IP hast, dann guck ma utner: http://no-ip.org

.unreal

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

ich greife doch immer über den server auf das internet bzw. auf die db zu und der hat normalerweise immer eine statische ip. da ist es doch vollkommen egal ob ich im büro von PC-A zugreife oder von PC-D, oder irre ich mich da?

563 Beiträge seit 2004
vor 17 Jahren

Hallo Fanatic-Design

Nein da irrst du dich nicht! In so einem Fall könntest du ja gleich einen MySQL Server inerhalb eures Netzwerkes installieren. Denk daran, dass die Daten zum MySQL Plaintext durch die Leitung gehen.

.unreal

S
1.047 Beiträge seit 2005
vor 17 Jahren

Denk daran, dass die Daten zum MySQL Plaintext durch die Leitung gehen.

unterstützt MySQL keine SSL Verbindungen?

563 Beiträge seit 2004
vor 17 Jahren

doch schon, wird aber sozusagen nie verwendet 🙂

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

wir haben bei uns im büro ja schon ms datenbanken laufen und da rentiert es sich fast nich noch eine mysql datenbank zu installieren.

S
1.047 Beiträge seit 2005
vor 17 Jahren

wir haben bei uns im büro ja schon ms datenbanken laufen und da rentiert es sich fast nich noch eine mysql datenbank zu installieren.

steltl sich mir die frage: wieso auf eine mysql-db die im internet ist und nicht auf die mssql db im büro?

die performance ist viel viel höher und auch die sicherheit

doch schon, wird aber sozusagen nie verwendet

naja er brauch in dem fall ja nur zu verwenden^^
oderm uß man da bei mysqlwieder erst was ektivieren?

563 Beiträge seit 2004
vor 17 Jahren

Original von sheitman
oderm uß man da bei mysqlwieder erst was ektivieren?

sollte eigentlich aktiviert sein. oft deaktivieren aber die provider diese funktionalität, da sowieso nur lokal einen zugriff möglich ist.

.unreal

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

bin gerade am überlegen ob ich nicht doch auf die ms db zugreifen soll. die sache ist nur die, dass ich mich mit mysql gut auskenne und noch nie mit ms db's gearbeitet habe.

hoffe die unstellung ist nicht allzu schwer.

S
1.047 Beiträge seit 2005
vor 17 Jahren

vielleicht helfen dir ja ein paar arbeitskollgen... oder wer arbeitet mit den ms db-servern bei euch? =)

mußt drauf achten das my sql und ms sql jeweils befehle haben die nicht zum standard gehören.. z.b. wenn du unter mysql limit benutzt hsat so gibts das in ms sql net
da gibts dann top

am besten mal googlen diesbezüglicher unterschiede

administration is dan natürlich noch ein andres thema... aber siehe mein 1. satz 😉

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

ja, die kann ich auch fragen. die programmieren ja ASP.NET und sind ziemlich gut drauf. ich wollte die nur nicht immer belästigen mit meinen fragen, da die ja auch anderes zu tun haben, als mir meine fragen zu beantworten. ausserdem bekomme ich im forum ja viel mehr antworten und erfahrungsberichte, damit ich weiß worauf ich aufpassen muss.

bin ja noch ein ziemlich blutiger anfänger in c#, aber ich denke, dass der beste weg zum erlernen einer programmiersprache über übungen führt. ich sitze oft solange vor einem stück code bzw. programm, bis es macht was ich will.

ich denke, dass ich auf einem guten weg bin c# zu erlernen oder glaubt ihr bzw. du das nicht?

S
1.047 Beiträge seit 2005
vor 17 Jahren

kann ich nicht beurteilen ob du auf einen guten wegen bist. die frage kannst nur du selbst beantworten. 🙂

aber zumindest deine einstellung stimmt. von daher wird das schon 🙂
jeder hat mal angefange 😉

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

stimmt und php und mysql hab ich mir ja auch selbst beigebracht.

jeder anfang ist schwer, aber übung macht ja bekanntlich den meister.

563 Beiträge seit 2004
vor 17 Jahren

wenn du dich mit mysql auskennst, dann kommst du gut voran mit mssql! War bei mir auch so, ist doch wurst ob man TOP oder LIMIT verwendet...

F
Fanatic-Design Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

ja stimmt. ich werde mir ein paar tutotrials ansehen und noch ein buch dazu kaufen, dann wir der umstieg sicher nicht so schwer, hoffe ich jedenfalls.