MySQL-Client: Readline?

MySQL-Client: Readline?

am 05.07.2006 14:03:18 von Thomas Rachel

Hallo,

gehört zwar nicht 100%ig hierher, aber:

Verwendet der MySQL-Client unter Linux die readline-Bibliothek, oder werden
solche Sachen "selbst" erledigt?

Falls ersteres: Wie kann man ihm (wenn überhaupt) die richtigen
Tastenkombinationen beibringen? (Bei mir funktioniert die Eingabe seit
Version 4.1.x nicht mehr, wie sie soll)

TIA,

Thomas

Re: MySQL-Client: Readline?

am 05.07.2006 14:44:13 von Christian Kirsch

Thomas Rachel schrieb:
> Hallo,
>
> gehört zwar nicht 100%ig hierher, aber:
>
> Verwendet der MySQL-Client unter Linux die readline-Bibliothek, oder werden
> solche Sachen "selbst" erledigt?
>

Das hängt davon ab, wie er übersetzt wurde -> ./configure --help bzw.
wenn Du ein fertiges Paket benutzt: ldd mysql | grep readline

> Falls ersteres: Wie kann man ihm (wenn überhaupt) die richtigen
> Tastenkombinationen beibringen? (Bei mir funktioniert die Eingabe seit
> Version 4.1.x nicht mehr, wie sie soll)

Wie immer bei readline: .inputrc anpassen. Oder eine vernünftige
Fehlerbeschreibung liefern. "funktionieren nicht wie sie sollen" ist
keine solche.

Re: MySQL-Client: Readline?

am 05.07.2006 14:49:27 von Kai Ruhnau

Thomas Rachel wrote:
> gehört zwar nicht 100%ig hierher, aber:
>
> Verwendet der MySQL-Client unter Linux die readline-Bibliothek, oder werden
> solche Sachen "selbst" erledigt?

~ $ ldd `which mysql`
[...]
libreadline.so.5 => /lib/libreadline.so.5 (0xb7f41000)
[...]

Bei mir verwendet er die readline-Bibliothek. Ich bin da auch recht froh
drum, dass ich die VI-Bindings benutzen kann, die von emacs konnte
(wollte) ich mir nie richtig merken.

> Falls ersteres: Wie kann man ihm (wenn überhaupt) die richtigen
> Tastenkombinationen beibringen? (Bei mir funktioniert die Eingabe seit
> Version 4.1.x nicht mehr, wie sie soll)

Was sind die "richtigen" Tastenkombinationen und was "funktioniert
nicht"? Bei mir haben die verschiedenen mysql-Versionen schon immer so
funktioniert, wie ich wollte.

Schau in jedem Fall mal in deine ~/.inputrc ob dir die Einträge da drin
gefallen.

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: MySQL-Client: Readline?

am 05.07.2006 15:11:58 von Axel Schwenke

Thomas Rachel wrote:
>
> Verwendet der MySQL-Client unter Linux die readline-Bibliothek, oder werden
> solche Sachen "selbst" erledigt?

Die GPL-Builds verwenden libreadline. Die kommerziellen statt dessen
libedit (weil libreadline GPL und nicht LGPL ist). Wenn du selber
baust, kannst du dir das aussuchen.


XL

Re: MySQL-Client: Readline?

am 05.07.2006 22:06:25 von Thomas Rachel

[supersede wegen vermuteter INN-Probleme meinerseits]

Christian Kirsch wrote:

>> Verwendet der MySQL-Client unter Linux die readline-Bibliothek, oder
>> werden solche Sachen "selbst" erledigt?
>>
>
> Das hängt davon ab, wie er übersetzt wurde -> ./configure --help bzw.
> wenn Du ein fertiges Paket benutzt: ldd mysql | grep readline

Hm, darauf bin ich auch schon gekommen - da kommt zwar kein readline vor,
jedoch wird libncurses.so.5 dynamisch verlinkt.

Es wäre zwar theoretisch möglich, daß libreadline.a statisch gelinkt wurde
(deshalb auch meine o.g. Frage nach der readline-Bibliothek), das würde
jedoch eher wenig Sinn ergeben. Also muß ich wohl davon ausgehen, daß meine
(von SuSE vorcompilierte) Version von mysql das "in Eigenregie" macht, und
dafür ncurses verwendet. Schade, war wohl nix mit .inputrc anpassen.


>> Falls ersteres: Wie kann man ihm (wenn überhaupt) die richtigen
>> Tastenkombinationen beibringen? (Bei mir funktioniert die Eingabe seit
>> Version 4.1.x nicht mehr, wie sie soll)
>
> Wie immer bei readline: .inputrc anpassen.

Da meine bash funktioniert wie sie soll, gehe ich davon aus, daß es nichtr
an der .inputrc liegt.

Hätte ja sein können, daß es da evtl. applikationabhängige .inputrc-ähnliche
Dateien gibt und ich mysql eine solche hätte spendieren können...

Da das alles jedoch nicht zutrifft, stelle ich meine Frage mal anders, und
zwar mit einer präzisen Problembeschreibung:


Diverse Tasten, zu denen in erster Linie Zeilennavigationstasten, aber auch
die Umlaute gehören, produzieren nicht das gewünschte Ergebnis.

Pfeiltasten gehen:
hoch, runter: Blättern in der History
links, rechts: Navigation in der aktuellen Zeile.
Pos1, Ende gehen auch (Anfang/Ende der Zeile)

Was nicht geht:
PgUp, PgDn, Entf (erzeugt ~)
äöü (stattdessen Ändern des nächsten Wortanfanges zu einem Großbuchstaben, 1
Wort weiterspringen)
ß (stattdessen Duplizieren des aktuellen Wortes)

mysql: Ver 14.7 Distrib 4.1.10a


Bei Ver 12.21 Distrib 4.0.15, auf welches ich ebenfalls Zugriff habe, geht
zwar Entf, dafür aber Pos1/Ende nicht.


In http://dev.mysql.com/doc/refman/4.1/en/mysql.html steht leider nix drin,
außer daß angeblich doch GNU readline verwendet würde.



Hat jemand ähnliche Erfahrungen gemacht? Gibt es vielleicht Optionen in
..my.cnf, die ich setzen könnte oder einen ähnlichen Weg (außer selbst
compilieren oder die RPMs von MySQL AB verwenden, was ich nur machen würde,
wenn mein Leidensdruck ob unvollständiger Editiermöglichkeiten nicht mehr
auszuhalten wäre)?

TIA,

Thomas