INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Daten an mysql
24.06.2016, 14:21 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016 16:04 von diode1990.)
Beitrag #17
RE: Daten an mysql
Jetzt hab ich noch ein ein paar Dinge versucht und habe jetzt absichtlich in der db.inc.php Datei das Passwort falsch angegeben um zu sehen was passiert.

es kommt die Meldung
Access denied for User www-data@localhost (using Password:NO)


warum www-data@.... ich wollte ja den root benutzer anmelden

Code:
<?php
define('DB_SERVER',"localhost");
define('DB_NAME',"arduino_temperaturen");
define('DB_USER',"root");
define('DB_PASSWORD',"123456");

$conn = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD);
if(is_resource($conn))
{
  mysql_select_db(DB_NAME, $conn);
  mysql_query("SET NAMES 'utf8'", $conn);
  mysql_query("SET CHARACTER SET 'utf8'", $conn);
}
?>

Die Rechte habe ich geändert siehe Anhang.

Aber es geht leider immer noch nicht.

So sieht jetzt mein Sketch aus:

Code:
#include <SPI.h>
#include <Ethernet.h>             // library for ethernet functions

int T1=1;
int T2=2;
//ETHERNET-SETTINGS
byte mac[]     = { 0x5D, 0xA2, 0xFA, 0x2D, 0x76, 0x7C };    // MAC-Adresse des Arduino
byte ip[]      = { 10, 0, 0, 20 };                     // IP-Adresse des Arduino
byte gateway[] = { 10, 0, 0, 138 };                    // Gateway
byte subnet[]  = { 255, 255, 255, 0 };                    // SubNet
byte server[]  = { 10, 0, 0, 17 };                     // IP-Adresse des Servers

EthernetClient client;
char host[]    = "localhost";                      // Domain
char url[]     = "/SaveTempToMySQL.php"; // Pfad zur PHP-Datei
char key[]     = "123456";                     // Kennwort aus PHP-Datei
char c;                                                     // Variable für Rückgabe des Servers

long Interval  = 10;                                        // Upload-Interval in Minuten

void setup()
{
  delay(1000);


  Serial.begin(9600);

  Ethernet.begin(mac, ip);
  

}

void loop()
{
  
delay(1000);
Serial.println("Test");
  



  if (client.connect(server, 80)) // Verbindung zum Server aufbauen
  {
    Serial.println("Verbunden, Sende Daten...");
    
    client.print("GET ");
    Serial.println("GET ");
    client.print(url);
    Serial.println(url);
    client.print("?T1=");
    Serial.print("?T1=");
    client.print(T1);
    Serial.println(T1);
    client.print("&T2=");
    Serial.print("&T2=");
    client.print(T2);
    Serial.println(T2);
    client.print("&key=" + String(key));
    Serial.print("&key=" + String(key));
    client.println(" HTTP/1.1");
    Serial.println(" HTTP/1.1");
   client.print("Host: ");
    Serial.print("Host: " + String(host));
    client.print(host);
    client.println();
    Serial.println();
    client.println("User-Agent: Arduino");
    Serial.println("User-Agent: Arduino");
    client.println("Connection: close");
    Serial.println("Connection: close");
    client.println();
    Serial.println();
  }}


Und dass steht in der Log Datei

10.0.0.20 - - [24/Jun/2016:13:03:27 +0000] "GET /SaveTempToMySQL.php?T1=1&T2=2&key=123456 HTTP/1.1" 200 187 "-" "Arduino"


wenn ich sie wieder eingebe und vorher localhost schreibe gehts

also

localhost/SaveTempToMySQL.php?T1=1&T2=2&key=123456 HTTP/1.1" 200 187 "-" "Arduino"


Eija der MySql läuft auf dem Raspi.


Vielen DANK

Kann es sein, dass ich irgendwo bei Apache.config no etwas ändern muss.

ZB.: localhost eintragen damit er weiß wenn er GET empfängt, dass er vorher localhost schreiben muss.

google liefert mir keine passenden information.

DANKE

Jetzt hab ich etwas gefunden woran es liegen könnte.

Wenn ich die Url selber einfüge gehts

und wenn sie vom Arduino kommt gehts nicht

Nun ist mir folgendes Aufgefallen im Log File

10.0.0.20 - - [24/Jun/2016:14:39:56 +0000] "GET /SaveTempToMySQL.php?T1=1&T2=2&key=123456 HTTP/1.1" 400 0 "-" "-"

::1 - - [24/Jun/2016:14:43:26 +0000] "GET /SaveTempToMySQL.php?T1=1&T2=2&key=123456%20HTTP/1.1%22%20400%200%20%22-%22%20%22-%22

Wenn die Daten vom Arduino kommen steht am Anfang 10.0.0.20 <---IP Arduino

Wenn ich sie Manuel eingebe steht das da ::1

Bei 10.0.0.20 gehts nicht

Bei ::1 gehts

Diese Benutzer sind in MyPHP angelegt siehe Anhang

Bei den Root user steht bei host niemals 10.0.0.20

Nun habe ich versucht root1 anzulegen mit 10.0.0.20

Aber jetzt kommt immer access denied obwohl User und Passwort definitv richtig eingetragen sind.
Auch wenn ich direkt über localhost/phpmyadmin einsteige und root1 und das PW eingebe habe ich keinen Zugriff.

Wie kann ich das lösen?

DANKE


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.06.2016, 17:09 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016 17:21 von rkuehle.)
Beitrag #18
RE: Daten an mysql
Yo,
"::1" zeigt, dass auf dem RaPi IPV6 läuft. Das Problem dabei: bei Antwort auf Requests hat IPV6 Vorrang vor IPV4. Ergebnis: du stellst eine Anfrage in IPV4 die Antwort wird aber in IPV6 geschickt. Ergebnis: keine Verbindung Daher IPV6 disablen. Siehe: https://www.leowkahman.com/2016/03/19/di...-raspbian/

Dass er "www-data" den Zugriff verweigert sagt mir, dass keine saubere Verbindung aufgebaut werden kann. Dann versucht Debian ein Verbindung ala "<unix-user>@localhost" ohne Password aufzubauen. Naja und www-data ist halt der User unter dem Apache und php laufen.
Die Ursache für die nicht zustande kommende Verbindung kann schon das IPV6 sein. Es kann aber auch schlicht was mit Ressourrcenüberschreitungen (DB-Load, Speicher etc.) zu tun haben.
Um das rauszufinden solltest du das Errorlogging im PHP aktivieren
Code:
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Siehe hier: http://php.net/manual/de/function.ini-set.php

Generell solltest du gucken ob deine www/php/mysql - Installation nach diesem Schema abgelaufen ist: http://www.php5dp.com/get-mysql-and-php-...pberry-pi/

Dem Benutzer der auf die DB zugreifen soll würde ich (erst einmal) Zugriff von überall geben also als Host "%" eintragen.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.06.2016, 17:31
Beitrag #19
RE: Daten an mysql
Vielen Dank,

Ich habe das jetzt umgestellt und jetzt steht nich mehr ::1 im Logfile sondern

127.0.0.1

leider werden die daten immer noch nicht übertragen.

Muss ich viellecht nochmal alles löschen und von neuem beginnen, ebenfalls habe ich in der config diese Adresse bind-address = 127.0.0.1 auf 0.0.0.0 gesetzt.

Danke


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.06.2016, 17:39 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016 17:43 von rkuehle.)
Beitrag #20
RE: Daten an mysql
Was sagt "ifconfig" ? Hast du IPV6 abgeschaltet?
Hast du mal die ini_sets für das php Errorlogging eingetragen?
irgendwo muss es auf dem RasPi auch eine error.log für den Apache/php geben. Da sollte dann was zu finden sein.
Zitat:Muss ich viellecht nochmal alles löschen und von neuem beginnen
Das hängt davon ab ob du dich im wesentlichen an die Installanleitung (siehe Link im letzten Post) gehalten hast.
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.06.2016, 18:04
Beitrag #21
RE: Daten an mysql
Hallo, im Error Log kommt nichts, dort wurden nur sachen gespeichert wo ich mit absicht passwörter falsch eingeben haben und so.

Ich glaube es ist zum scheitern verurteilt.

Der Arduino sendet die Daten, apache empfängt die Daten, die Daten werden in Datenbank geschrieben.

Ich habe die Config des Apache geändert damit von außen zugegriffen werden kann
* einen neuen Benutzer angelegt der von außen erreichbar sein sollte.
*die Datenbank scheint richtig angelegt zu sein da Ja Werte drin stehn
*IPV6 geändert
*die Testseite PHP wird richtig angezeigt


Es ist schade, dass es nach sooo vielen Stunden immer noch nicht funktioniert.

Nochmals vielen vielen dank für die Unterstützung


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.06.2016, 18:46 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2016 18:48 von rkuehle.)
Beitrag #22
RE: Daten an mysql
Und nun, aufgeben oder Neustart?
Das Netz scheint ja jetzt so zu laufen wie es soll (ohne IPv6).
Man könnte jetzt mit apt-get das ganze Apache/php/MySQL - Zeugs rausschmeißen und entsprechend diesem Link
http://www.php5dp.com/get-mysql-and-php-...pberry-pi/ neu installieren.
Siehe meine PN...
Wenn es dann noch immer nicht geht sollte man sich noch einmal um den Arduino / PHP Code kümmern. Oder du schickst mir mal deinen kompletten Arduino / php / MySQL Code und ich teste das mal auf meinem Server.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.07.2016, 22:13
Beitrag #23
RE: Daten an mysql
Hier was zum austesten ...

Grundidee war auch die Seite Fluxx, wurde weiter ausgebaut, mit ideen von Ricardo, hilfe von Bitklopfer ... und dieversen kleinteilen von mir

Aufgebau

2x Temp sensoren ( DS 18b20 )
W5100 Netzwerkshield
5x ASC 712 stromsensoren 30 Amp.
3 Spannungsteiler ( werte weis ich jetzt nicht grade, aber jenseitz von gut und böse ... zeigt aber richtig an )
1 Schaltrelais
Signal ( CNY17 , wenn windrad auf Break ist )
SD karte für werte Speichern
Display 4x20 über i2c

Wetterfrosch.zip
SQL.txt --- Daten für die SQL Datenbank
sqldatasave.php --- Seite für die entgegename der Daten
Ordner haus .. webseite
dbs1.inc.php muss überall angepasst werden
wettersolar.rar ist die Arduino datei bassierend auf den Mega2560

Viel spass beim Testen
nehme gerne verbesserrungs vorschläge entgegen


Angehängte Datei(en)
.zip  wetterfrosch.zip (Größe: 52,42 KB / Downloads: 16)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.07.2016, 13:22
Beitrag #24
RE: Daten an mysql
Moin,

ich habe mir mal den Sketch angeschaut - ist vom Grundsatz her schon sehr übersichtlich / sauber geschrieben. Empfehlungen eigentlich nur kosmetischer (?) Natur:
- die "Variablen" für Pins sind ja fest, daher vielleicht als const oder mit #define deklarieren
- print - Ausgaben für Strings würde ich über den F-Makro machen
Beides dürfte Variablenspeicher frei machen
- delay() würde ich durch millis() - Abfragen ersetzen, da delay() etliches an Komponenten auf dem Ardu stoppt und eben auch den Code.
Nur so als Gedanken...
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Daten Visualisieren MeisterQ 12 532 01.12.2016 19:36
Letzter Beitrag: MeisterQ
  MySQL Beispielcode verstehen RonSH 107 1.915 25.11.2016 10:45
Letzter Beitrag: Tommy56
  Data Logger Daten auf SD Card schreiben Crichton 12 265 22.11.2016 18:32
Letzter Beitrag: Crichton
  I2C Daten übertragen Gandalf 3 210 04.11.2016 13:20
Letzter Beitrag: hotsystems
  Daten über USB verarbeiten Felix91 10 318 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.531 01.09.2016 14:17
Letzter Beitrag: Clubsport
  NRF24L01,Empfangene Daten auswerten Marc2014 9 512 30.07.2016 19:34
Letzter Beitrag: rkuehle
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 178 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Serielle Schnittstelle - Daten empfangen Datatom 8 772 22.05.2016 18:10
Letzter Beitrag: avoid
  Interrupt wenn softwareSerial Daten BennIY 3 439 01.05.2016 18:39
Letzter Beitrag: tiny85fan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste