yushao21 发表于 2025-7-4 17:01:56

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)


reddey 发表于 2025-7-4 17:13:41

我用的CENTOS 7,数据库版本是Server version: 8.0.32-25 GreatSQL (GPL), Release 25, Revision 79f57097e3f。删除键和退格键是正常的

yejr 发表于 2025-7-4 17:28:12

搜索是否有 /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 21:41:11

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-8 10:38:08

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键

reddey 发表于 2025-7-8 19:44:07

yejr 发表于 2025-7-4 21:41
经查,应该是和 libncurses.so 、 libtinfo.so 这两个动态库有关系,用 glibc 2.17 包里的这两个文件替换 ...

原来如此,是不是其它国产操作系统也会这样?

yejr 发表于 2025-7-9 08:46:14

reddey 发表于 2025-7-8 19:44
原来如此,是不是其它国产操作系统也会这样?

和OS没关系,而是和curses库的版本有关系,我测了下,似乎只有6.1这个版本会这样,高于、低于这个版本都正常

tongyouquan 发表于 2025-7-10 09:00:20

yejr 发表于 2025-7-9 08:46
和OS没关系,而是和curses库的版本有关系,我测了下,似乎只有6.1这个版本会这样,高于、低于这个版本都 ...

{:5_185:}学习了
页: [1]
查看完整版本: GreateSQL命令行无法使用Backspace和Delete键