GreateSQL命令行无法使用Backspace和Delete键
本帖最后由 yushao21 于 2025-7-4 17:09 编辑今天根据官方文档:https://greatsql.cn/docs/8.0.32- ... ubuntu-install.html 的指引,安装了GreateSQL,安装好后,用命令行登录,发现无法通过退格键删除字母,delete键也没用,加了ctrl一起也没用,不知道啥问题。检查系统包是安装了readline的。
root@lavm-9mtiy7cd86:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
root@lavm-9mtiy7cd86:~#
root@lavm-9mtiy7cd86:~# dpkg -l | grep readline
iilibreadline8:amd64 8.1.2-1 amd64 GNU readline and history libraries, run-time libraries
iireadline-common 8.1.2-1 all GNU readline and history libraries, common files
root@lavm-9mtiy7cd86:~# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910
Copyright (c) 2021-2025 GreatDB Software Co., Ltd
Copyright (c) 2009-2025 Percona LLC and/or its affiliates
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
(Fri Jul4 17:00:26 2025)[(none)]>status;
--------------
mysqlVer 8.0.32-27 for Linux on x86_64 (GreatSQL, Release 27, Revision aa66a385910)
Connection id: 19
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.32-27 GreatSQL, Release 27, Revision aa66a385910
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn.characterset: utf8mb4
UNIX socket: /data/GreatSQL/mysql.sock
Uptime: 25 min 41 sec
Threads: 4Questions: 29Slow queries: 0Opens: 152Flush tables: 3Open tables: 68Queries per second avg: 0.018
--------------
(Fri Jul4 17:00:41 2025)[(none)]>hello fff ggg
root@lavm-9mtiy7cd86:~# ldd /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/mysql
linux-vdso.so.1 (0x00007ffdd87f8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb9f08ac000)
libreadline.so => /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/../lib/private/libreadline.so (0x00007fb9f0600000)
libncurses.so => /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/../lib/private/libncurses.so (0x00007fb9f0200000)
libtinfo.so => /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/../lib/private/libtinfo.so (0x00007fb9efe00000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb9f08a5000)
libssl.so => /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/../lib/private/libssl.so (0x00007fb9efa00000)
libcrypto.so => /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/../lib/private/libcrypto.so (0x00007fb9ef400000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fb9f0891000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb9f088c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb9f0519000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb9ef1d4000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb9f086a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb9eefac000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb9f04fd000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb9f08b9000)
可以的环境:
root@iZwz94thu30upt5javximoZ:~# which mysql
/usr/local/mysql/bin/mysql
root@iZwz94thu30upt5javximoZ:~# ldd /usr/local/mysql/bin/mysql
linux-vdso.so.1 (0x00007ffc477c5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007acef08e5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007acef08e0000)
libssl.so.3 => /usr/local/mysql/bin/../lib/private/libssl.so.3 (0x00007acef0400000)
libcrypto.so.3 => /usr/local/mysql/bin/../lib/private/libcrypto.so.3 (0x00007aceefa00000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007acef08cd000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007acef08c6000)
libncurses.so.6 => /lib/x86_64-linux-gnu/libncurses.so.6 (0x00007acef089d000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007acef0869000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007aceef600000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007acef0780000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007acef0752000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007aceef200000)
/lib64/ld-linux-x86-64.so.2 (0x00007acef08f3000)
我用的CENTOS 7,数据库版本是Server version: 8.0.32-25 GreatSQL (GPL), Release 25, Revision 79f57097e3f。删除键和退格键是正常的 搜索是否有 /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/lib/private/libreadline.so 这个动态库文件,将其加到 ldconfig path 里,再试试看呢,以下是大概示例
$ cat /etc/ld.so.conf
/usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/lib/private/
$ ldconfig
$ ldd /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin/mysql | grep -i readline yejr 发表于 2025-7-4 17:28
搜索是否有 /usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/lib/private/libreadline.so 这个动态 ...
经查,应该是和 libncurses.so 、 libtinfo.so 这两个动态库有关系,用 glibc 2.17 包里的这两个文件替换过来就可以正常回档删除了
也就是说,在GreatSQL的CI编译环境中,glibc 2.28环境中的libncurses库不适用于Ubuntu 22.04环境
libncurses.so是Linux终端处理的核心库,负责光标移动、窗口创建、颜色显示等功能,像vim、htop这些工具都依赖它。而libtinfo.so更轻量,主要处理终端转义序列的解析和终端能力描述,通常作为libncurses的依赖存在
yejr 发表于 2025-7-4 21:41
经查,应该是和 libncurses.so 、 libtinfo.so 这两个动态库有关系,用 glibc 2.17 包里的这两个文件替换 ...
该案例已更新到FAQ列表中https://greatsql.cn/docs/8.0.32-27/11-faq/5-faq-others.html#_19-为什么greatsql客户端无法使用backspace和delete键 yejr 发表于 2025-7-4 21:41
经查,应该是和 libncurses.so 、 libtinfo.so 这两个动态库有关系,用 glibc 2.17 包里的这两个文件替换 ...
原来如此,是不是其它国产操作系统也会这样? reddey 发表于 2025-7-8 19:44
原来如此,是不是其它国产操作系统也会这样?
和OS没关系,而是和curses库的版本有关系,我测了下,似乎只有6.1这个版本会这样,高于、低于这个版本都正常 yejr 发表于 2025-7-9 08:46
和OS没关系,而是和curses库的版本有关系,我测了下,似乎只有6.1这个版本会这样,高于、低于这个版本都 ...
{:5_185:}学习了
页:
[1]