MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Diskussionen zur Bedienung von KeyHelp.
Post Reply
KlausK
Posts: 25
Joined: Sat 23. Oct 2021, 09:14

MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by KlausK »

Ich habe einen frisch installierten vServer mit Keyhelp.

Via Shell melde ich mit als MySQL-"root" an, lege einen MySql-User, dann eine DB an. Dannach weise ich dem neuen MySql-User alle Rechte der neuen DB zu und aktualisiere den Cache.

Code: Select all

mysql -u root -pROOTPASSWORT
CREATE USER 'NeueDBAdmin'@'localhost' IDENTIFIED BY 'NeueDBAdminPasswort';
CREATE DATABASE NeueDB;
GRANT ALL PRIVILEGES ON NeueDB . * TO 'NeueDBAdmin'@'localhost';
FLUSH PRIVILEGES;

Natürlich wird alles mit einem "Query OK" quittiert.

Wie bringe ich Keyhelp nun bei, diese neue DB einem Keyhelp-Benutzer in seinem Backend anzuzeigen bzw. zu verwalten?
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by OlliTheDarkness »

KlausK wrote: Sun 23. Jan 2022, 14:58 Ich habe einen frisch installierten vServer mit Keyhelp.

Via Shell melde ich mit als MySQL-"root" an, lege einen MySql-User, dann eine DB an. Dannach weise ich dem neuen MySql-User alle Rechte der neuen DB zu und aktualisiere den Cache.

Code: Select all

mysql -u root -pROOTPASSWORT
CREATE USER 'NeueDBAdmin'@'localhost' IDENTIFIED BY 'NeueDBAdminPasswort';
CREATE DATABASE NeueDB;
GRANT ALL PRIVILEGES ON NeueDB . * TO 'NeueDBAdmin'@'localhost';
FLUSH PRIVILEGES;

Natürlich wird alles mit einem "Query OK" quittiert.

Wie bringe ich Keyhelp nun bei, diese neue DB einem Keyhelp-Benutzer in seinem Backend anzuzeigen bzw. zu verwalten?
Überhaupt nicht.

Datenbanken und User sollten auschließlich im Panel oder über die API angelegt werden.

User / DBs welche du über die Shell anlegst intressiert sich KH nicht für, dies gilt besonders für den Fall das die Backup Funktion nutzt.

viewtopic.php?p=32473#p32473
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by Tobi »

Wahrscheinlich könnte man die selbst erstellte DB nachträglich in die KeyHelp Datenbank eintragen und mit der passenden UserID verknüpfen…

Aber warum sollte man das machen wollen?

Dafür gibt es die API…
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by 24unix »

KlausK wrote: Sun 23. Jan 2022, 14:58 FLUSH PRIVILEGES;
Das brauchst Du nicht, wenn Du die Berechtigungen mit GRANT vergibst, nur wenn Du die per SQl direkt in der MySQL-DB anlegst;
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
User avatar
Alexander
Keyweb AG
Posts: 3810
Joined: Wed 20. Jan 2016, 02:23

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by Alexander »

OlliTheDarkness wrote: Sun 23. Jan 2022, 15:07 User / DBs welche du über die Shell anlegst intressiert sich KH nicht für, dies gilt besonders für den Fall das die Backup Funktion nutzt.

viewtopic.php?p=32473#p32473
Als Ergänzung hierzu: Seit KeyHelp 21.3 kann man als Admin auch am KeyHelp vorbei konfigurierte Datenbanken mit dem neuen Backup-System sichern und wiederherstellen lassen (Bei Backup-Umfang, "Benutzerdefiniert" wählen und entsprechende Checkbox anklicken).

Ansonsten natürlich wie bereits gesagt, Datenbanken einfach über die API anlegen lassen, statt am KeyHelp vorbei.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
KlausK
Posts: 25
Joined: Sat 23. Oct 2021, 09:14

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by KlausK »

Mich in die API einzuarbeiten ist zeitlich kaum möglich. Vermutlich ist es einfacher, die etwa 40 DB's via KH manuell anzulegen und anschließend mit den aktuellen Dumps via Shell zu aktualisieren. Das dürfte sich ja hoffentlich nicht negativ auswirken.
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by 24unix »

Hast Du Nutzer, Datenbankname und Passwort in einer Tabelle vorliegen?

Existieren die Nutzer schon in KH?
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
KlausK
Posts: 25
Joined: Sat 23. Oct 2021, 09:14

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by KlausK »

Die Daten liegen alle tabellarisch vor.
In KH sind bisher nur ich selbst und ein TestUser angelegt.
User avatar
24unix
Posts: 1560
Joined: Sun 21. Jun 2020, 17:16
Location: Kollmar
Contact:

Re: MySQL-DB via Shell erzeugen und im Admin-Bereich verwalten

Post by 24unix »

KlausK wrote: Thu 27. Jan 2022, 14:26 Die Daten liegen alle tabellarisch vor.
In KH sind bisher nur ich selbst und ein TestUser angelegt.
Also muss User und. DB angelget werden?

Ich hatte letzte Woche was für einen anderen User geschrieben, das könnte man wohl mit etwas Änderung übernehmen.

Code: Select all

<?php

function sendCommand($body)
{
	$serverName = 'https://keyhelp/api/v2/clients/';
	$apiKey = 'uhTKKvRb.[..]9TrxCCE9d';

	$apiResult = [
		'response' => 'error'
	];

	$curl = curl_init();
	curl_setopt($curl, option: CURLOPT_URL, value: $serverName);
	curl_setopt($curl, option: CURLOPT_RETURNTRANSFER, value: true);
	curl_setopt($curl, option: CURLOPT_POST, value: true);
	curl_setopt($curl, option: CURLOPT_HTTPHEADER, value: ["X-API-Key:$apiKey"]);
	curl_setopt($curl, option: CURLOPT_POSTFIELDS, value: json_encode($body));

	if ($resultJSON = curl_exec($curl)) {
		$httpResponse = curl_getinfo($curl)['http_code'];
		$apiResult = json_decode($resultJSON);


		switch($httpResponse) {
			case 200:
				// no error
				break;
			case 201:
				// user created
				$apiResult = [
					'userid' => $apiResult->id
				];
				break;
			case 400:
				$apiResult = [
					'code' => '400 Bad Request',
					'error' => $apiResult->message
				];
				break;
			case 401:
				$apiResult = [
					'error' => 'Missing or wrong API Key'
				];
				break;
			default:
				$apiResult = [
					'error' => 'Unhandled error ' . $httpResponse
				];
		}

	} else {
		$apiResult = [
			'error' => 'Unknown error'
		];
	}

	curl_close($curl);

	echo json_encode($apiResult) . PHP_EOL;
}

$ofile = fopen("debug.txt", "w");

$parameter = print_r($_POST, true);

fputs($ofile, $parameter);

fclose($ofile);

$content = [
	'username' => $_REQUEST['username'],
	'language' => "de",
	'email' => "me@example.com",
	'password' => "qwertz",
	'notes' => "Any comments about this client account.",
	'send_login_credentials' => true,
	'create_system_domain' => true,
];

sendCommand($content);
Das ist jetzt zur Interaktion mit einem HTML Formular ausgelegt, aber kann mal sicher anpassen, eine CSV zu parsen und dann drüber zu laufen.
mfg Micha
--
If Bill Gates had a nickel for every time Windows crashed …
… oh wait, he does.
Post Reply