MYSQL Connect will einfach nicht

Hallo!

Ich hätte gerne, dass IPSYMCON auf einen anderen Rechner in meinem Netzwerk gewisse Werte in eine MYSQL Datenbank schreibt.

Ich krieg den verdammten connect einfach nicht hin :confused:

Auf der MYSQL-Rechner Seite sollte alles OK sein, alle Permissions usw passen.

Kann mir vielleicht jemand ein Codeschnipsel für MYSQL posten …

Hier ist mein Skript

$link = mysql_connect( ‚192.168.1.5‘, ‚root‘, ‚xxx‘ );
$db_selected = mysql_select_db(‚mi-remote-casa‘, $link);

$result = mysql_query(‚SELECT * from PIRI_1‘);
if (!$result) {
echo „Insert Error!“;
}
?>


Die Fehlermeldung „Insert Error“ erscheint.

Wäre super!
axel

Hallo borcherta,

eigentlich ist es gut, wenn das so nicht funktioniert. Du solltest grundsaetzlich nie mit dem User root auf die mySQL Datenbank zugreifen. Und Deine Aussage, dass auf mySQL Seite alles stimmig ist, kann ich unter diesen Umstaenden nicht nachvollziehen, Du schreibst ja auch sollte, bist Dir also nicht 100% sicher.

Der „Insert Error“ erscheint uebrigens nicht, weil das INSERT nicht geklappt hat, es ist eher wahrscheinlich, dass der Connect nicht geklappt hat, das fragst Du aber gar nicht ab. Ich wuerde Dir folgendes empfehlen:

  1. Installierung mySQL auf Deinem Windows IPS Rechner, aber nicht aktivieren.
  2. mit mysql auf Deine Remote Datenbank connectieren und damit siehst Du sofort, ob es ueberhaupt so klappt.
  3. User fuer Deine Datenbank fuer den Remote Zugriff einrichten.

Gruss Torro

Hallo Torro,

der User root ist aber er MYSQL User root und NICHT der Linux-User root.
Das wird oft verwechselt, und ich sehe keine Veranlassung, nicht den root User von MYsql zu benutzen.
Ich muss die ganzen connect-Zeilen besser auch noch in eine include Datei auslagern. Hab ich schon versucht so wie ich das schon jahrelang in PHP mache, als Ergebnis leider nur Fehlermeldungen.

Auch sonst bin ich mir „fast“ sicher, dass auf der Mysql-Seite alles OK ist.
Ich benutze die Datenbank auch für andere Sachen. IPSYMCON hat auch am Anfang andere Fehlermeldungen bebracht, da fehlten in der Tabelle user in MYSQL noch Einträge, jetzt ist und bleibt die Fehlemeldung SQL-Fehler (egal ob insert oder was auch immer).

Lange Rede kurzer Sinn, hat jemand ein Code-SChnipsel „MYSQL“ für mich bettel

Noch einen andere Sache:
in IPSYMCON funktionieren bei mir im SkriptEditor die Shortcuts CTRL-C usw. nicht. Was mache ich falsch? Das ist nämlich SEHR nervig!

Danke!
axel

Halloechen,

der User root ist aber er MYSQL User root und NICHT der Linux-User root.
Das wird oft verwechselt, und ich sehe keine Veranlassung, nicht den root User von MYsql zu benutzen.

ich weiss und habe das auch nicht verwechselt, sondern gerade deshalb diesen Hinweis Dir gegeben. Der User root hat unter mySQL privilegierte Zugriffsrechte, die man fuer die Anwendung nicht benoetigt und besser auch remote nicht zur Verfuegung stellt. Ich arbeite seit ueber 10 Jahren im professionellen Bereich mit PHP und mySQL und glaube mir, ich weiss von was ich in diesem Zusammenhang spreche.

Ich muss die ganzen connect-Zeilen besser auch noch in eine include Datei auslagern. Hab ich schon versucht so wie ich das schon jahrelang in PHP mache, als Ergebnis leider nur Fehlermeldungen.

Du koenntest ja mal die betreffenden Codeschnipsel mit Fehlermeldung hier posten, dann kann ich Dir einfacher helfen.

Auch sonst bin ich mir „fast“ sicher, dass auf der Mysql-Seite alles OK ist.
Ich benutze die Datenbank auch für andere Sachen. IPSYMCON hat auch am Anfang andere Fehlermeldungen bebracht, da fehlten in der Tabelle user in MYSQL noch Einträge, jetzt ist und bleibt die Fehlemeldung SQL-Fehler (egal ob insert oder was auch immer).
Lange Rede kurzer Sinn, hat jemand ein Code-SChnipsel „MYSQL“ für mich bettel

also bitte die Fehlemeldung genauer bringen, es gibt etliche Fehler, die unterschiedliche Ursachen haben. Nachfolgend ein Codeschnipsel, welches funktioniert, er ist allerdings aus einer Klasse, aber da wirst Du schon zurecht kommen:


function append($instanceID, $instanceWert, $rrdWert = 0) {
	// Query fuer INSERT
	ips_id = $instanceID;
	ips1 = $this->ipsWert ( $instanceWert, $rrdWert);
	$this->ipsAVG();
	$query = sprintf("INSERT INTO $this->table (ips_id, ips1, ips5, ips15) 
		VALUES (%s, %s, %s, %s)", 
		$this->ips_id, $this->ips1, $this->ips5, $this->ips15);
	$this->result = mysql_db_query($this->db, $query);
	$this->log->log(1, $this->class . "-_append: 0" 
		. mysql_errno().": ".mysql_error() );
	if ( $this->result ) {				 
		// ID des INSERT holen
		$this->append_id = mysql_insert_id ( $this->db_conn_id );
		$this->log->log(1, $this->ips_id);
		echo "Wert " . $instanceID . " in DB inserted.";
		return true;
	} else {
		// echo "kein Handle gespeichert <br>";
		$this->log->log(1, $this->class . "-append:" 
			. mysql_errno().": ".mysql_error() );
		$this->log->log(1, $this->class . "-append aus der Tabelle: " 
			. $this->table . " fehlgeschlagen. " . $query );
		$this->append_id = 0;
		return false;
	}
}

Ansonsten schicke Deinen konkreten Code mit Fehlermeldung, dann gehts auch besser, Dir zu helfen.

Gruss Torro

http://de3.php.net/manual/en/function.mysql-query.php


 $result = mysql_query('SELECT * from PIRI_1', $link);

da fehlte was :smiley: ( $link als resource link_identifier )


echo mysql_errno().": ".mysql_error()."
";

Das hilft auch recht oft :slight_smile:

Grüße, paresy

Danke Parsey!
Da sieht man manchmal den Wald vor lauter Bäumen nicht …
Jetzt wäre für mich noch offen, ob man bei includes etwas besonderes beachen muss … und warum CTRL-C und CTRL-V etc. im Skripteditor (mit der Tastatur) nicht funktioniert :confused:

Torro ich gebe dir in alle Punkten recht bzgl. der Rechte und dem MYSQL-Root user. Ich bin da vielleicht etwas zu nachlässig :rolleyes:

Schlecht ist in jedem Fall, wenn die PHP Engine mal ausfallen sollte und dann die Seite im Browser als „Klartext“ erscheint, kann man die Passwörter der Datenabnk einfach „ablesen“. Daher würde ich das gerne in includes verstecken.
Siehst du da ein Problem?

Danke und Saludos
axel

Includes funktionieren ganz normal… da sind mir keine Probleme bekannt.

Wegen des Script Editors… funktionieren die anderen Hotkeys? (z.b. STRG+T)

Grüße, paresy

Ja CTRT-T z.B. funktioniert, es funktionieren nach meiner Ansicht alle Standard-Windows Shortcuts nicht.
Ich wundere mich gerade, dass das noch keinem aufgefallen ist :rolleyes:

Mit rechter Maustaste gehen alle, aber das ist schon sehr umständlich :frowning:

axel

Hallo borcherta,

naja, nachlaessig ist vielleicht der falsche Ausdruck, ich wuerde fast sagen zu gutglaeubig. Es gibt richtige Hobbyisten, die nur nach solchen Konstellationen suchen und dann erst per Webseite nachschauen, ob da was machbar ist.

Bezueglich includes: so funktioniert es bei mir:
WZ_Temp.ips.php:
include(„scripts\dbclass.php“);
$ok = $rrd->append(25683, GetValueBoolean(„es_regnet“),10);

dazu habe ich in der php.ini noch:

php.ini:
include_path=C:\Programme\IP-SYMCON\rrdtool

dbclass.php liegt in:
…\IP-SYMCON\rrdtool\scripts\

Gruss Torro

hallo !

ich habe gerade den beitrag hier gelsesen und möchte mal fragen:
gibt es eine möglichkeit von ips aus einen connect auf eine datenbank auf einem webserver zu machen um daten in eine datenbank zu schreiben ?

ich möchte auf meinen pc at home eine date in ips einlesen und die daten in eine mysql datenbank auf einem webserver „draussen“ schreiben. geht das ?

danke, frank

wenn Dein Mysql auf Deinem Webserver von zu Hause errreichbar ist, geht das ohne Umwege, einfach als host statt localhost den namen deines Webservers eintragen. Dazu muss (bei mysql standard)-Port 3306 freigeschalten werden. Ist das nicht der fall, Du hast aber einen ssh-zugriff, kannst Du einen (vorher)SSH-Tunnel legen und z.B. den localen Port 53306 auf port 3306 beim Webserver umleiten. Dann musst Du im Script als host localhost und port 53306 angeben. Wenn das auch nicht hilft, kannst Du das File entweder direkt an den Webserver posten(bis 64k), erst einen FTP-Upload machen oder (am elegantesten) über XML austauschen. In all diesen Fällen macht dann ein Script auf dem Webserver das eigentliche Dateneinlesen in die DB. Solange Paresy das SOAP-Modul noch nicht geschafft hat, mußt Du Dir die Scripte für die XML-Variante leider alle selber basteln.

Viele Wege führen … in die DB.

HTH
Tommi