让 MySQL 客户端命令行接受带有重音符号的字符作为输入

Let MySQL client command line accept characters with accents as input

我不知道如何让我的 MySQL 客户端在 Ubuntu 的命令行上接受带有重音符号的字母作为输入。这些字符不会在控制台上回显,也不会被接受为输入。据我所知,在 mysql 的早期版本中,我通过使用命令 mysql --default-character-set=utf8 启动客户端解决了这个问题,但这不适用于 mysql Ver 14.14 Distrib 5.7.25,Linux (x86_64) 在 Ubuntu 18.04.

上使用 EditLine wrapper

起作用的是 echo 'SELECT "é" AS letter' | mysql <dbname>,它给出了正确的输出。

我怀疑 EditLine 包装器造成了这种行为,但我不知道如何摆脱这种不需要的功能。

您可以让您的数据库支持 UTF-8 编码

尝试以下操作:ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

如果您正在使用 Terminal

Terminal > Preferences > Encodings > UTF-8 Unicode

我今天发现,我在当前 bash 中继承了以前安装的设置的别名:

alias mysql='mysql --default-character-set=utf8'

自从我删除了那个别名(使用 unalias mysql)后,不当行为就消失了。