Forum: PC Hard- und Software mysql cli history search einschalten


von Jörg E. (jackfritt)


Lesenswert?

Debian buster mariadb mit mysql console.
History search klappt prima.
Debian bookworm nicht mehr.
Ich verzweifle gerade, inputrc rehash schon probiert.

Keine Ahnung wo ich noch suchen soll.
Kennt jemand das Problem?

von Boris F. (skyperhh)


Lesenswert?

Ist das .mysql_history File im Homeverzeichnis?
Stimmen die Rechte?

Mehr dazu siehe Link

https://mariadb.com/kb/en/mariadb-command-line-client/#the-mysql_history-file

von Jörg E. (jackfritt)


Lesenswert?

Ich denke wenn das file Rechteprobleme etc hätte, könnte Ich nicht mit 
Pfeil rauf/runter Taste durch die history scrollen. Das ist also erstmal 
nicht mein Problem.

Ich möchte ja mit PGDN/PGUP(Bild rauf/runter) durch die history scrollen 
bzw. suchen indem Ich einen buchstaben z.B. S (für SELECT) vorgeben und 
mir werden alle Befehle aus der history mit S nach jedem Tastendruck 
angezeigt.

Das geht noch untern
Server version: 10.3.39-MariaDB-0+deb10u2 Debian 10
aber unter
Server version: 10.11.6-MariaDB-0+deb12u1-log Debian 12
geht es nicht mehr.

von Jörg E. (jackfritt)


Lesenswert?

Bin da auf ner heissen Spur...

mysql -V
mysql  Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) 
using  EditLine wrapper

mysql -V
mysql  Ver 15.1 Distrib 10.3.39-MariaDB, for debian-linux-gnu (x86_64) 
using readline 5.2

Ok also ma Editline reinziehen.

https://dev.mysql.com/doc/refman/8.0/en/mysql-tips.html#mysql-input-editing

Oh nein die Büchse geöffnet.. was ein Graus. Hoffe das gibt nen 
Aufschrei... bzw nicht noch mehr Pakete die auf EditLine wechseln.Geht 
sowas von gar nicht.

Beispiel. Alte suche. schön einfach wie oben beschrieben.

Jet neu mit Editline CTRL+R (CTRL+S geht ja schonmal nicht stoppt 
Terminal...)
oder auch
~/.editrc erstellen mit nem bind
bind "^R" em-inc-search-prev

Dann in mysql cli CTRL+R drücken dann erscheint Textfeld
bck:
Jetz kann man case sensitive! seine alten Befehle suchen also drücke Ich
SE
und der schlägt vor
SELECT FILE_NAME, START_LSN, END_LSN FROM 
performance_schema.innodb_redo_log_files;
bck:SE
Hmm von durchscrollen keine Spur kann hier nur die richtigen Zeichen 
weiterraten..

So ein Murks...das is doch kein ersatz für readline..

Gebs auf und Versuche mir ne eigene mysql cli mit readline8 support zu 
bauen(geht das überhaupt noch...

: Bearbeitet durch User
von Boris F. (skyperhh)


Lesenswert?

Jörg E. schrieb:
> Ich denke wenn das file Rechteprobleme etc hätte, könnte Ich nicht mit
> Pfeil rauf/runter Taste durch die history scrollen. Das ist also erstmal
> nicht mein Problem.

The mysql_history File

On Unix, the mariadb client writes a record of executed statements to a 
history file. By default, this file is named .mysql_history and is 
created in your home directory. To specify a different file, set the 
value of the MYSQL_HISTFILE environment variable.

The .mysql_history file should be protected with a restrictive access 
mode because sensitive information might be written to it, such as the 
text of SQL statements that contain passwords.

If you do not want to maintain a history file, first remove 
.mysql_history if it exists, and then use either of the following 
techniques:
....


Deshalb hab ich nach den Datei-Rechten gefragt, hast Du denn mal 
nachgeschaut, existiert in deinem Homeverzeichnis die Datei 
".mysql_history", was steht in der Systemvariablen "MYSQL_HISTFILE" ?

von Jörg E. (jackfritt)


Lesenswert?

Ok habe doch noch ne Lösung gefunden die fast genauso funktioniert. 
Cursor wird leider ans ende Positioniert aber immerhin schonmal wieder 
ne Suche möglich.
Im Home Verzeichnis (Achtung bei "sudo mysql" ist es im root.editrc) 
eine .editrc
mit folgendem Inhalt anlegen:
1
bind "^[[5~" ed-search-prev-history
2
bind "^[[6~" ed-search-next-history

Dann geht diese Suche...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.