SQL-Statement auf einem Webadmin-Frontend

Unser Off Topic Bereich. Alles was nicht zu Manjaro Linux gehört findet hier seinen Platz!
Antworten
Benutzeravatar

Themen Author
malaga
Forum Kenner
Forum Kenner
Beiträge: 101
Registriert: Freitag 20. Juli 2018, 16:20
GPU:
Kernel:
Desktop-Variante:
GPU Treiber:
Hat sich bedankt: 2 Mal

SQL-Statement auf einem Webadmin-Frontend

#1

Beitrag von malaga »

hallo und guten Abend,


Auf einem Webadmin - Frontend will ich die folgenden sql-Statements absetzen - aber keiner der Befehle funktioniert.

Code: Alles auswählen

USE jo ;
SHOW GLOBAL VARIABLES LIKE 'PORT';

gibt zurück

Code: Alles auswählen

Failed to execute SQL : SQL USE jo ; SHOW GLOBAL VARIABLES LIKE 'PORT'; failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SHOW GLOBAL VARIABLES LIKE 'PORT'' at line 1
während :

Code: Alles auswählen

USE jo ;
SHOW GRANTS FOR CURRENT_USER;
folgendes zurückgibt:

Code: Alles auswählen

Failed to execute SQL : SQL USE jo ; SHOW GLOBAL VARIABLES LIKE 'PORT'; failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SHOW GLOBAL VARIABLES LIKE 'PORT'' at line 1
Anmerkung: jo - das ist der Name der DB

hier das manual zu diesem sql-commando:

https://beginner-sql-tutorial.com/sql-use-database.htm

SQL USE Statement
The USE Statement is used to select a database and perform SQL operations into that database.
The database remains default until end of session or execution of another USE statement with some other database.

SQL USE DATABASE Statement:
The Syntax for the USE Statement is:

USE database_name;
database_name - is the name of the database to be selected


USE DATABASE Example:
If you want to use database MyDatabase, the statement would be like
USE MyDatabase ;

btw i es laufen die versionen auf dem Server
- MySQL version 5.5.33
- PHP 5.6.39
Benutzeravatar

gosia
Forum Held
Forum Held
Beiträge: 2232
Registriert: Dienstag 24. Mai 2016, 13:33
CPU: Intel i5-3210M
GPU: Intel HD 4000
Kernel: 4.19
Desktop-Variante: Openbox
GPU Treiber: i915
Hat sich bedankt: 20 Mal
Danksagung erhalten: 495 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#2

Beitrag von gosia »

Hallo malaga,
da die Syntax richtig ist, stellen sich mir diese Fragen:
Was für ein Webadmin - Frontend ist das denn? phpmyadmin? Und bist Du als normaler User bei MySQL angemeldet? Versuche mal dich mit der Kommandozeile auf der DB anzumelden:

Code: Alles auswählen

mysql -u USERNAME -p
und wenn das funktioniert, wenn Du die SQL-Shell bekommst, nur das USE-Kommando absetzen:

Code: Alles auswählen

USE jo;
Aus irgendeinem Grund, den ich noch nicht verstehe, ist das USE-Kommando das Problem. Es meldet ja immer

Code: Alles auswählen

Error ... at line 1
viele Grüße gosia
Benutzeravatar

Themen Author
malaga
Forum Kenner
Forum Kenner
Beiträge: 101
Registriert: Freitag 20. Juli 2018, 16:20
GPU:
Kernel:
Desktop-Variante:
GPU Treiber:
Hat sich bedankt: 2 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#3

Beitrag von malaga »

Hallo und guten Morgen Goisa, :)

vorweg: vielen Dank für deine schnelle Antwort und die guten Fragen, die du stellst. Die helfen weiter. Das USE-Statement ist auch meiner Ansicht nach, ein Problem. es wird nicht akzeptiert bzw. liefert keine Werte zurück. Ich habe mich im Moment - also innerhalb einer jetzt eine Wooche andauerenden Fehlersuche - darauf verlegt, herauszufinden was mit der Datenbank los ist.


zum Einzelnen: Webmin - A web-based interface for system administration of UNIX ( https://sourceforge.net/projects/webadmin/ )

Zu deiner Frage nach der Konsole: habe keinen Zugang zur Konsole - leider.

Deine Idee mit der Konsole ist sehr gut - das wäre jetzt das allernächste was ich machen wollte:
Versuche mal dich mit der Kommandozeile auf der DB anzumelden:

Code: Alles auswählen

mysql -u USERNAME -p 
...

Code: Alles auswählen

und wenn das funktioniert, wenn Du die SQL-Shell bekommst, nur das USE-Kommando absetzen: 
...zu dem USE-Statement u. dem Befund: Ich hab eine relativ alte Version von MySQL auf dem Server - siehe auch unten: Das USE-Statement ist schon in der 5.5 er MySQL-Version drinne. Muesste laufen - tut es aber leider nicht. Mein Problem im Hintergrund: Es ist ein error-establishing a DB-Connection-Fehler den ich seit ca 8 Tagen habe. -und nicht richtig zuordnen kann, woher er rührt.

USE ist in den 5.5.er STATEMENTS drinne
https://dev.mysql.com/doc/refman/5.5/en ... mmand.html
https://dev.mysql.com/doc/refman/5.5/en/use.html

Hintergrund: Auf dem WEBADMIN - das auf einem Rootserver läuft macht mein Freund das (eigentliche) Servermanagement u. ich hab die Moeglichkeit darauf Vhosts u. MySQL-Datenbanken einzurichen.

Beim Installieren auf dem Server hatte ich jahrelang eigentlich keine Probleme: Neuerdings allerdings schnon. Der VHost lässt sich einrichten - jedoch klappt es irgendwie nicht, eine DB einzurichten zu der ich dann auch "von Außen" Kontakt habe - m.a.W. es tritt ein "Error establishing a database connection" ein - beim Installationsversuch einer WordPress.

Error establishing a database connection
This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down.
Are you sure you have the correct username and password?
Are you sure that you have typed the correct hostname?
Are you sure that the database server is running?
If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums. Click to expand...
Habe einiges versucht: Ich editiere jetzt mal manuell die Datei u. speichere die dann als Wp_config.php auf dem Server ab. Btw: wundert mich etwas, dass dies nach mehreren Versuchen nicht von alleine. Darüber hinaus: Habe ferner versucht mittels eines "Test-the-Connection" -Scripts weiterzukommen. Doch hier hab ich auch keine entscheidenden Einsichten gewinnen können.

- zu den bisherigen Befunden - insbesondere zu diesem zurückgegebenen Fehler (den der Aufruf des "Test-The-Connection-Script" ergeben hat:

Code: Alles auswählen

1 Warning: mysqli_error() expects exactly 1 parameter,
2 given in /sites/www.mysite.de/testconnection.php on line 4
und dass hier ist das Script das ich hierfür auf den Server hochgeladen hab:

Code: Alles auswählen

<?php
if(function_exists('mysqli_connect')){
if(!($link = mysqli_connect('localhost','user','passwd','my_db'))){
die('could not connect: ' . mysqli_error($link));
}
die("don't have mysqli");
}
echo 'connect successfully';
mysqli_close($link);

.

...ein paar Gedanken zu diesen Ergebnissen: Das sagt dann doch wohl folgendes:

- 1 Parameter ist benötigt;
- aber 0 oder auch anders gesagt, keiner wird angeboten;

Es wurde mithin kein "error checking" ausgeführt ehe die Funktion aufgerufen wurde. Es wird praktisch "blind" eine Variable übergeben die anliegt.
Im Grunde macht das ja auch Sinn - wenn man in Rechnung stellt dass die Verbindung zur MySQL-DB fehlschlägt. Nun mal abgesehen von der Validierung der Benutzerpassworte etc. etx.

Aufs Ganze gesehen glaube ich sagen zu koennen, dass es eher unwahrscheinlich scheint, dass ich hier Pfadprobleme hab. Es sieht eher nicht nach wordpress-Pfad-Fehler aus.

Hab in den PHP-Info-Daten noch folgendes gesehen:

Code: Alles auswählen

active_connections  18446744073709551563
Ferner noch hab ich festgestellt, dass auf dem Server noch ein PHP 5.6.39 läuft - Das ist definitiv veraltet u. wird gleich hochgezogen.
Werde nun alles noch weiter untersuchen und mich wieder zurück melden.

Die Konfiguration auf dem SERVER ... .

MySQL version 5.5.33
PHP 5.6.39

mysql aus dem jahre 13 - schon bisschen alt!
php aus dem jahre 15 - schon bisschen alt!


zu dem WEBMIN - (bzw. Webadmin)
https://doxfer.webmin.com/Webmin/MySQL_Database_Server

The options below configure synchronization between Unix users created through Webmin and MySQL users.

when to synchronisize

[ ] add a new MySQL user when a Unix-User is added;
[ ] update a Mysql.-user when the matching of a Unix-user is modified;
[ ] delete a MysqL.-user when the matching Unix-user is deleted
Your MySQL database server requires all clients to authenticate themselves with a username and password before they can execute SQL commands. It has its own tables of users, passwords and permissions that are consulted when a client tries to login, rather than the Unix user files /etc/passwd and /etc/shadow. Detailed permissions can be defined for each user, in order to limit the kinds of SQL statements that he can use, the client hosts he can connect from, and the databases, tables and fields that he can modify. Typically after MySQL has been first installed, only the root user is able to login. This user will have permissions to access all databases and tables and perform all actions, and so is generally used for administration purposes only. If you want to write an application that uses a database, it is a good idea to create another user for that purpose and set up the application to login as that user. The standard MySQL install also creates an Anonymous user with no password and access to databases starting with test. This special user is used for any login attempt for which no other matching user is found. Anonymous users are explained in more detail below.
Die Reihenfolge, in der ich das alles vorgenommen habe:

1. setup eines DB-users and then
2. erstellen der db
3. dem user Berechtigungen auf der db geben
4. dem user user Berechtigungen auf dem db-host geben



Ich denke dass ich hier vielleicht mit einem Rechteproblem zu tun habe, oder mit einem generellen" User-Problem" ... Insofern finde ich - wie oben bereits festgestellt, deine Idee mit der Konsole sehr gut - das wäre jetzt das allernächste was ich machen wollte:
Versuche mal dich mit der Kommandozeile auf der DB anzumelden:

Code: Alles auswählen

mysql -u USERNAME -p 
...

Code: Alles auswählen

und wenn das funktioniert, wenn Du die SQL-Shell bekommst, nur das USE-Kommando absetzen: 

Aber da ich keinen Zugang zur Konsole habe muss ich nun überlegen, wie ich fortfahre mit Tests und Versuchen.
Benutzeravatar

Themen Author
malaga
Forum Kenner
Forum Kenner
Beiträge: 101
Registriert: Freitag 20. Juli 2018, 16:20
GPU:
Kernel:
Desktop-Variante:
GPU Treiber:
Hat sich bedankt: 2 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#4

Beitrag von malaga »

hallo und guten Tag.

wenn ich das STATEMENT einfach weglasse - dann gehts...

also - ich habe soeben festgestellt dass ich einfach dass USE <dbname> weglasse

Code: Alles auswählen

SHOW GRANTS FOR CURRENT_USER;
das gibt das hier retour

Code: Alles auswählen

Output from SQL command SHOW GRANTS FOR CURRENT_USER; ..
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*4444444rrrrrrwwwww222222444443660283C379783ED8EF54B6EC01DAF8374444444rrrrrrrrrrrreeeeewwwww2CeC3C474F4' WITH GRANT OPTION
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

und ich krieg dann also das entsprechende Ergebnis für die betreffende DB .. Und jetzt geht es also um die _Interpretation_ dieses Ergebnisses im Rahmen des Problems - Error in Establishing a DB-Connection... beim Installieren einer Wordpress auf dem Frontend..+
Benutzeravatar

gosia
Forum Held
Forum Held
Beiträge: 2232
Registriert: Dienstag 24. Mai 2016, 13:33
CPU: Intel i5-3210M
GPU: Intel HD 4000
Kernel: 4.19
Desktop-Variante: Openbox
GPU Treiber: i915
Hat sich bedankt: 20 Mal
Danksagung erhalten: 495 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#5

Beitrag von gosia »

Hallo malaga,
malaga hat geschrieben: ↑Sonntag 16. Juni 2019, 14:29 wenn ich das STATEMENT einfach weglasse - dann gehts...
klingt jetzt vielleicht blöd, aber genau das wollte ich dir vorschlagen. weil mir an dieser Stelle die Angabe einer speziellen DB überflüssig erscheint. Ich benutze ja nun schon länger nur noch MariaDB und da braucht man für die Abfrage von globalen Variablen keine DB anzugeben, schliesslich ist der Port global, gilt also für alles :)

Code: Alles auswählen

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'PORT';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)
So sieht das jedenfalls bei mir aus -> gewählte DB = (none)
Ich sehe zwar nicht, warum

Code: Alles auswählen

USE jo
an dieser Stelle so stören sollte, aber überflüssig ist es in dem Zusammenhang schon.
malaga hat geschrieben: ↑Sonntag 16. Juni 2019, 14:29 beim Installieren einer Wordpress auf dem Frontend..
An der Stelle bin ich aber raus aus dem Spiel. Vielleicht sagt hier jemand noch was dazu, aber als Tipp, ist da ein spezielleres Forum nicht der bessere Ort dafür, weil es ja eigentlich in keiner Weise Manjaro-spezifisch ist?

viele Grüße gosia
Benutzeravatar

Themen Author
malaga
Forum Kenner
Forum Kenner
Beiträge: 101
Registriert: Freitag 20. Juli 2018, 16:20
GPU:
Kernel:
Desktop-Variante:
GPU Treiber:
Hat sich bedankt: 2 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#6

Beitrag von malaga »

hallo Goisa, vielen Dank!! Du hast mir sehr geholfen.
Hallo at all,

hier nur noch ein kleiner Nachtrag - weil ich grade dabei war. @goisa - du hast Recht : das sollte man auf einem anderen Forum weiterdisskutieren.

....und weil ich ja nicht root bin, wenn ich eine WP installiere sondern ein dezidierter DB-User hier das noch:

Code: Alles auswählen

Output from SQL command SHOW GRANTS FOR 'jo'@'localhost'; ..
Grants for jo@localhost
GRANT USAGE ON *.* TO 'jo'@'localhost' IDENTIFIED BY PASSWORD '*93C1B40FA5F0FED10E5A0CE946A5E71D59B00860'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `jo`.* TO 'jo'@'localhost'
ich werde noch weitere Sachen untersuchen u. gucken was ich noch rauskriege...

viele Grüße
:D
Benutzeravatar

Themen Author
malaga
Forum Kenner
Forum Kenner
Beiträge: 101
Registriert: Freitag 20. Juli 2018, 16:20
GPU:
Kernel:
Desktop-Variante:
GPU Treiber:
Hat sich bedankt: 2 Mal

Re: SQL-Statement auf einem Webadmin-Frontend

#7

Beitrag von malaga »

Hallo Goisa hallo Community,


wollte das mit Euch noch teilen: jetzt geht alles wieder: hier nur noch der Vollständigkeit halber: neues Build eingespielt.

Dabei hat das neue PHP-Build den mysql pfad nicht aus der php.ini gelesen - deshalb musste es recompiliert werden und ein configure argument ubergeben werden.

Die Socket Pfade sind - laut php.ini diese:

Code: Alles auswählen

mysql.default_socket    /var/run/mysql/mysql.sock    /var/run/mysql/mysql.sock
mysqli.default_socket    /var/run/mysql/mysql.sock    /var/run/mysql/mysql.sock
ferner noch:

Code: Alles auswählen

Directive    Local Value    Master Value
pdo_mysql.default_socket    /home/vhost/WWW/var/run/mysql/mysql.sock    /home/vhost/WWW/var/run/mysql/mysql.sock
Wie gesagt: jetzt geht alles tadellos.



Viele Grüße

malaga
Antworten