Fix database setup

This commit is contained in:
Florian Pesth 2024-02-03 19:49:21 +01:00
parent e3e5b27b98
commit 9603bd59bc
7 changed files with 155 additions and 35 deletions

View File

@ -0,0 +1,54 @@
DROP TABLE IF EXISTS `Dienst`;
CREATE TABLE `Dienst` (
`DienstID` int(11) NOT NULL AUTO_INCREMENT,
`Was` text NOT NULL,
`Wo` text NOT NULL,
`Info` text NOT NULL,
`Leiter` int(11) NOT NULL,
`ElternDienstID` int(11) DEFAULT NULL,
`HelferLevel` int(11) DEFAULT NULL,
PRIMARY KEY (`DienstID`)
);
DROP TABLE IF EXISTS `EinzelSchicht`;
CREATE TABLE `EinzelSchicht` (
`EinzelSchichtID` int(11) NOT NULL AUTO_INCREMENT,
`SchichtID` int(11) NOT NULL,
`HelferID` int(11) NOT NULL,
PRIMARY KEY (`EinzelSchichtID`)
);
DROP TABLE IF EXISTS `Helfer`;
CREATE TABLE `Helfer` (
`HelferId` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL,
`Status` int(11) NOT NULL,
`Email` varchar(50) NOT NULL,
`Handy` varchar(50) NOT NULL,
`BildFile` varchar(200) NOT NULL,
`DoReport` tinyint(1) NOT NULL,
`Admin` int(11) DEFAULT 0,
`Passwort` varchar(200) DEFAULT NULL,
`HelferLevel` int(11) DEFAULT NULL,
PRIMARY KEY (`HelferId`),
UNIQUE KEY `unique_index_email` (`Email`)
);
DROP TABLE IF EXISTS `HelferLevel`;
CREATE TABLE `HelferLevel` (
`HelferLevel` int(11) DEFAULT NULL,
`HelferLevelBeschreibung` varchar(255) DEFAULT NULL
);
DROP TABLE IF EXISTS `Schicht`;
CREATE TABLE `Schicht` (
`SchichtID` int(11) NOT NULL AUTO_INCREMENT,
`DienstID` int(11) NOT NULL,
`Von` datetime NOT NULL,
`Bis` datetime NOT NULL,
`Soll` int(11) NOT NULL,
`Dauer` time DEFAULT NULL,
PRIMARY KEY (`SchichtID`)
);
DROP TABLE IF EXISTS `Status`;
CREATE TABLE `Status` (
`StatusID` int(11) NOT NULL AUTO_INCREMENT,
`Text` text NOT NULL,
PRIMARY KEY (`StatusID`)
);

View File

@ -0,0 +1,54 @@
DROP TABLE IF EXISTS `Dienst`;
CREATE TABLE `Dienst` (
`DienstID` int(11) NOT NULL,
`Was` text NOT NULL,
`Wo` text NOT NULL,
`Info` text NOT NULL,
`Leiter` int(11) NOT NULL,
`ElternDienstID` int(11) DEFAULT NULL,
`HelferLevel` int(11) DEFAULT NULL,
PRIMARY KEY (`DienstID`)
);
DROP TABLE IF EXISTS `EinzelSchicht`;
CREATE TABLE `EinzelSchicht` (
`EinzelSchichtID` int(11) NOT NULL,
`SchichtID` int(11) NOT NULL,
`HelferID` int(11) NOT NULL,
PRIMARY KEY (`EinzelSchichtID`)
);
DROP TABLE IF EXISTS `Helfer`;
CREATE TABLE `Helfer` (
`HelferId` int(11) NOT NULL,
`Name` varchar(50) NOT NULL,
`Status` int(11) NOT NULL,
`Email` varchar(50) NOT NULL,
`Handy` varchar(50) NOT NULL,
`BildFile` varchar(200) NOT NULL,
`DoReport` tinyint(1) NOT NULL,
`Admin` int(11) DEFAULT 0,
`Passwort` varchar(200) DEFAULT NULL,
`HelferLevel` int(11) DEFAULT NULL,
PRIMARY KEY (`HelferId`),
UNIQUE('Email')
);
DROP TABLE IF EXISTS `HelferLevel`;
CREATE TABLE `HelferLevel` (
`HelferLevel` int(11) DEFAULT NULL,
`HelferLevelBeschreibung` varchar(255) DEFAULT NULL
);
DROP TABLE IF EXISTS `Schicht`;
CREATE TABLE `Schicht` (
`SchichtID` int(11) NOT NULL,
`DienstID` int(11) NOT NULL,
`Von` datetime NOT NULL,
`Bis` datetime NOT NULL,
`Soll` int(11) NOT NULL,
`Dauer` time DEFAULT NULL,
PRIMARY KEY (`SchichtID`)
);
DROP TABLE IF EXISTS `Status`;
CREATE TABLE `Status` (
`StatusID` int(11) NOT NULL,
`Text` text NOT NULL,
PRIMARY KEY (`StatusID`)
);

View File

@ -28,7 +28,7 @@ class DB {
public function prepare($method, $sql, $variant = '') public function prepare($method, $sql, $variant = '')
{ {
self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql); return self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql);
} }
public function execute($method, $values = array(), $variant = '') public function execute($method, $values = array(), $variant = '')
@ -40,7 +40,23 @@ class DB {
{ {
return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset); return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset);
} }
public function executeScript($method, $filename, $variant = '')
{
$sqlFromFile = file_get_contents($filename);
$sqlStatements = explode(";", $sqlFromFile);
$statementcounter = 0;
foreach($sqlStatements as $sqlStatement){
if(self::prepare($method, $sqlStatement.";", $variant) == false){
return array();
};
$retval[$statementcounter] = self::execute($method,array(),$variant);
if(!is_null(self::pdoErrorCode()) && self::pdoErrorCode() != '00000'){
return $retval;
}
$statementcounter++;
}
return $retval;
}
public function fetchAll($method, $variant = '') public function fetchAll($method, $variant = '')
{ {
return self::$stmts[$method . "::" . $variant]->fetchAll(); return self::$stmts[$method . "::" . $variant]->fetchAll();

View File

@ -18,10 +18,10 @@ $wizard->addCode('enterlogindata',function($storedvariables){
}); });
$wizard->addCode('createdatabase',function($storedvariables){ $wizard->addCode('createdatabase',function($storedvariables){
$conf_file = fopen("../etc/konfiguration.php", "w"); $conf_file = fopen("../bengelsystem_konfiguration.php", "w");
fwrite($conf_file, "<?php\n"); fwrite($conf_file, "<?php\n");
if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){
fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("../etc") . "/helferdb.sql' );\n"); fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n");
fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n");
fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n");
fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n");
@ -45,7 +45,7 @@ $wizard->addCode('createdatabase',function($storedvariables){
echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>";
$_POST['step'] = 'createdatabase'; $_POST['step'] = 'createdatabase';
} else { } else {
echo "<p>Successfully connected to database!</p>"; echo "<p>Erfolgreich mit der Datenbank verbunden!</p>";
} }
}); });
@ -61,29 +61,21 @@ $wizard->addCode('createdatabasetables',function($storedvariables){
echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>";
$_POST['step'] = 'createdatabase'; $_POST['step'] = 'createdatabase';
} else { } else {
echo "<p>Successfully connected to database!</p>"; echo "<p>Erfolgreich mit der Datenbank verbunden!</p>";
} }
$sql = file_get_contents("../etc/helferdb_schema_test.sql"); if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){
$db->prepare(__METHOD__,$sql); $dbscript = "../helferdb_structure_sqlite.sql";
if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){
echo "<pre>"; $dbscript = "../helferdb_structure_mariadb.sql";
var_dump(__METHOD__);
var_dump($db->errorCode(__METHOD__));
var_dump($db->errorInfo(__METHOD__));
echo "</pre>";
echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>";
$_POST['step'] = 'createdatabasetables';
} }
$db->execute(__METHOD__); $statementsReturnvalues = $db->executeScript(__METHOD__, $dbscript);
if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){
echo "<pre>"; echo "<p>Fehler ".$db->pdoErrorCode()." bei Statement Nr. ".sizeof($statementsReturnvalues)." beim Versuch Tabellen anzulegen: \"".$db->pdoErrorInfo()[2]."\"</p>";
var_dump(__METHOD__); $_POST['step'] = 'createdatabase';
var_dump($db->errorCode(__METHOD__)); } else {
var_dump($db->errorInfo(__METHOD__)); echo "<p>Datenbanktabellen wurden erfolgreich angelegt!</p>";
echo "</pre>";
echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>";
$_POST['step'] = 'createdatabasetables';
} }
}); });
$wizard->renderPHP(); $wizard->renderPHP();

View File

@ -145,7 +145,11 @@ class Wizard {
else{ else{
$page = "\xEF\xBB\xBF".$pageval; $page = "\xEF\xBB\xBF".$pageval;
} }
libxml_use_internal_errors(true);
$pagedom->loadHTML($page); $pagedom->loadHTML($page);
foreach (libxml_get_errors() as $error) {
echo "<p>Error when parsing html for step \"".$_POST['step']."\":".$error->line." ".$error->column." ".$error->message."</p>";
}
$forms = $pagedom->getElementsByTagName('form'); $forms = $pagedom->getElementsByTagName('form');
foreach($forms as $form){ foreach($forms as $form){
$input = $pagedom->createElement('input'); $input = $pagedom->createElement('input');

View File

@ -1,7 +1,7 @@
<?php <?php
// datenbank-defines extern // datenbank-defines extern
require_once('../etc/konfiguration.php'); require_once('../bengelsystem_konfiguration.php');
// die folgenden Zeilen ohne Kommentarzeichen nach ../etc/helferdb_konfiguration.php // die folgenden Zeilen ohne Kommentarzeichen nach ../etc/helferdb_konfiguration.php
// kopieren und an die eigene Datenbank anpassen // kopieren und an die eigene Datenbank anpassen
// define( 'MYSQL_HOST', 'localhost' ); // define( 'MYSQL_HOST', 'localhost' );

View File

@ -4,7 +4,7 @@
"steps": [ "steps": [
{ {
"id": "selectdatabase", "id": "selectdatabase",
"page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"sqlite\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form><\/p>", "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"mariadb\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form>",
"redirects": [ "redirects": [
{ {
"==": {"databasetype": "SQLite"}, "==": {"databasetype": "SQLite"},
@ -18,11 +18,11 @@
}, },
{ {
"id": "setupsqlite", "id": "setupsqlite",
"page": "<h2>Datenbanksoftware installieren<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Wir müssen das sqlite Modul für PHP installieren, bitte dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install php-sqlite3<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanksoftware ist installiert\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupsqlite\"\/><\/form>" "page": "<h2>Datenbanksoftware installieren<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<\/p><p>Wir müssen das sqlite Modul für PHP installieren, bitte dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install php-sqlite3<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanksoftware ist installiert\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupsqlite\"\/><\/form>"
}, },
{ {
"id": "enterlogindata", "id": "enterlogindata",
"page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupmariadb\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form><\/p>\r\n", "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden (möglichst Sonderzeichen wie \" oder ; vermeiden oder escapen - da die Datenbankverbindung ohnehin nur lokal sein sollte und durch die Firewall geblockt sollte die Sicherheit von diesem Passwort nicht kritisch sein) und die anderen Werte können unverändert bleiben.<\/p>\r\n<form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupmariadb\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form>\r\n",
"redirects": [ "redirects": [
{ {
"==": {"password": ""}, "==": {"password": ""},
@ -43,21 +43,21 @@
{ {
"id": "setupmariadb", "id": "setupmariadb",
"page": [ "page": [
{"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:</p><pre><code>CREATE DATABASE '"}, {"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<\/p><p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:<\/p><pre><code>CREATE DATABASE "},
{"variable": "enterlogindata\/dbname"}, {"variable": "enterlogindata\/dbname"},
{"text": "';' CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_german2_ci';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, {"text": " CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_german2_ci';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"},
{"variable": "enterlogindata\/user"}, {"variable": "enterlogindata\/user"},
{"text": "'@'"}, {"text": "'@'"},
{"variable": "enterlogindata\/host"}, {"variable": "enterlogindata\/host"},
{"text":"' IDENTIFIED BY '"}, {"text":"' IDENTIFIED BY \""},
{"variable": "enterlogindata\/password"}, {"variable": "enterlogindata\/password"},
{"text":"';<\/code><\/pre><p>und ihm alle Rechte auf der Datenbank geben:<\/p><pre><code>GRANT ALL PRIVILEGES ON '"}, {"text":"\";<\/code><\/pre><p>und ihm alle Rechte auf der Datenbank geben:<\/p><pre><code>GRANT ALL PRIVILEGES ON "},
{"variable": "enterlogindata\/dbname"}, {"variable": "enterlogindata\/dbname"},
{"text":"'.* TO '"}, {"text":".* TO '"},
{"variable": "enterlogindata\/user"}, {"variable": "enterlogindata\/user"},
{"text": "'@'"}, {"text": "'@'"},
{"variable": "enterlogindata\/host"}, {"variable": "enterlogindata\/host"},
{"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:</p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre>"} {"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:<\/p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbank ist angelegt\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupmariadb\"\/><\/form>"}
] ]
}, },
{ {