Ich habe dummerweise auf einem Pi4 dieses Script laufen lassen:
Das hat mein System ziemlich durcheinander gebracht, aber das meiste habe ich wieder hinbekommen.
Nur Grafana und Phpmyadmin wollen nicht mehr.
127.0.0.1 geht mit Apache und PHP bei $servername.
localhost geht nicht (mehr).
Display Spoiler
<?php
echo "<table style='border: solid 3px black; width:100%; text-align:center;'>";
echo "<tr><th colspan='4'; style='border: solid 3px black; width:25%; text-align:center;'>Sensor</th></tr>";
echo "<tr><th style='border: solid 3px grey; width:25%; text-align:center;'>°C</th><th style='border: solid 3px grey; width:25%; text-align:center;'>%</th><th style='border: solid 3px grey; width:25%; text-align:center;'>hPa</th><th style='border: solid 3px grey; width:25%; text-align:center;'>gemessen</th></tr>";
class TableRows1 extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='border: solid 3px black; width:25%; text-align:center;'>" . parent::current(). "</td>";
}
function beginsensor1() {
echo "<tr style='border: solid 3px black; width:25%; text-align:center;'>";
}
function endsensor1() {
echo "</tr>" . "\n";
}
}
$servername = "127.0.0.1";
$username = "userxy";
$password = "geheim";
$dbname = "userxy";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT temperatur, luftfeuchtigkeit, luftdruck, datumzeit FROM daten ORDER BY datumzeit DESC LIMIT 0,1");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$data = $stmt->fetch();
if ($data) {
// Convert UTC time to Europe/Berlin
$utc_time = new DateTime($data['datumzeit'], new DateTimeZone('UTC'));
$timezone = new DateTimeZone('Europe/Berlin');
$utc_time->setTimezone($timezone);
$formatted_datumzeit = $utc_time->format('Y-m-d H:i:s');
echo "<tr>";
echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['temperatur']."</td>";
echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['luftfeuchtigkeit']."</td>";
echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['luftdruck']."</td>";
echo "<td style='border: solid 3px black; width:25%; text-align:center;'>".$data['datumzeit']."</td>";
echo "</tr>";
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
In /tmp habe ich einen Link auf mysqld.sock
lrwxrwxrwx 1 root root 23 25. Mai 08:25 mysql.sock -> /run/mysqld/mysqld.sock
Und in /run/mysqld/:
ls -la
insgesamt 4
drwxr-xr-x 2 mysql mysql 80 24. Mai 09:48 .
drwxr-xr-x 45 root root 1320 1. Jun 08:30 ..
-rw-rw---- 1 mysql mysql 8 24. Mai 09:48 mysqld.pid
srwxrwxrwx 1 mysql mysql 0 24. Mai 09:48 mysqld.sock
Wenn ich in Grafana eine Datenquelle hinzufügen möchte kommt immer:
Error 1045 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung (verwendetes Passwort: Ja)
egal ob ich bei Host 127.0.0.1:3306 eingetragen habe oder localhost und in der Mariadb localhost als Host steht.
show variables like '%sock%';
bringt diese Ausgabe:
+-----------------------------------------+-------------------------+
| Variable_name | Value |
+-----------------------------------------+-------------------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | -1 |
| socket | /run/mysqld/mysqld.sock |
+-----------------------------------------+-------------------------+
3 rows in set (0,003 sec)
Wenn ich in der Konsole:
mysql --user=root --password=geheim -h 127.0.0.1 mysql
eingebe, kommt:
ERROR 1698 (28000): Benutzer 'root'@'localhost' hat keine Zugriffsberechtigung
Wenn ich umgekehrt:
mysql --user=root --password=geheim -h localhost mysql
eingebe, dann komme ich rein.
Mit anderen Sensor-Usernamen und deren DB komme ich per Konsole sowohl mit localhost, als auch mit 127.0.0.1 rein, weil Host %
Aber eingetragen werden die aktuellen Daten von keinem ESP32 mit BME280-Sensor mehr.
Aber warum komme ich als root jetzt nur noch per Konsole rein ?
Mit einem anderen Nutzer komme ich sowohl mit 127.0.0.1 als auch mit localhost rein, obwohl in Host nur localhost steht.
![]()
Jemand eine Idee ? ![]()