MySQL 配色方案

40

有没有一种方法可以为mysql客户端设置一个颜色方案?这可能听起来微不足道,但我想能够为终端客户端设置一些级别的颜色。


2
你在使用哪个终端?还是在使用Windows的cmd.exe?这并不是一个关于mysql的问题。 - Nick Dixon
1
我正在使用Mac,普通的终端。尽管我实际上可以使用任何终端。我的想法是,也许mysql客户端有像.vimrc文件一样的东西。所以,是的,这是一个关于mysql的问题 ;) - Cory Collier
你试过这些选项中的任何一个吗?有哪一个对你起作用了吗? - Matt Curtis
1
这是一个MySQL的问题。我也很想知道。我厌倦了MySQL客户端的单色输出,如果它能以彩色输出就好了。我想先在这里查一下,似乎命令行的MySQL客户端没有颜色输出选项。 - user58777
1
就我个人而言,颜色绝对不是微不足道的东西,特别是如果你(像我一样)在桌子上有几个4k显示器,并且需要同时处理大量信息。 - Jeff
9个回答

58

我花了很多时间来解决那个问题。我花了近一年的时间才解决它 :) 在mysql配置中有一个很好的选项叫做“pager”。

我刚刚发布了我的mysql客户端和grc的配置(在大多数nix dists中都可用)。 在github上查看吧!https://github.com/nitso/colour-mysql-console

输入图像描述


3
太棒了!在 OSX 上运行得很好(只需先执行“brew install grc”)。这让我非常开心 :) - Darragh Enright
我按照安装手册操作,但是没有找到配置文件。 "将两个配置文件复制到您的主目录中" - Houssem ZITOUN
@HoussemZitoun 的配置文件是: .my.cnf.grcat - Ostin

12

1
完美的工具!我在一秒钟内安装了它 $ sudo apt-get install mycli 并使用 $ mycli -u root -p root - alexandre-rousseau
我最近发现了这个工具,我非常喜欢它! - Cory Collier

4

如果你只想要一个带颜色的提示符,可以使用rlwrap:

% rlwrap --prompt-colour='1;34' mysql

注意:与惯例相反,rlwrap用U拼写颜色。

如果你想让所有东西都有颜色,请查看acoc - 任意命令输出着色器。不确定它是否适用于交互式程序,你可能需要扩展它或编写自己的程序。


“color” 只是美式英语拼写方式。 - Neil
似乎你需要执行以下命令才能正常工作:rlwrap -a -p'RED' mysql。如果没有使用 -a 选项,提示符将不会被着色。 - Neil
3
当然,“colour”是澳大利亚人在写作时拼写的方式,但大多数开发者使用“color”来约定此类事物,因为这样可以避免各种不必要的混淆。 - Matt Curtis
在我看来,你应该以acoc答案为主(这也是我点赞的原因)。此外,rlwrap的链接似乎超时了。 - Jeff
@Jeff 感谢您的建议。相比之下,rlwrap 要比 acoc 更易在不同平台上找到。但是它获得了银牌,这也挺不错的,对吧? - Matt Curtis

1

最近我开始在独立的vim会话中使用MySQL客户端,使用conque。Vim提供了语法高亮和其他一些额外的功能,比如nowrap、搜索、水平滚动等。

使用:set wrap

enter image description here

使用 :set nowrap 命令:

enter image description here

如果你喜欢Vim,我建议你试一试:
  1. 安装conque。
  2. 创建一个新的.vimsql文件(我喜欢为此使用不同的vimrc)。
  3. 调整它以默认启动conque和mysql。
  4. 调整它以获得一些良好的mysql键映射。
  5. alias mysqlcool="vim -u ~/.vimsql" (或者其他 :))

你可以查看我正在使用的vimrc


0

MySQL 文本客户端非常基础,如果你需要更高级的功能,可以尝试 MySQL Query Browser,它是一个图形用户界面客户端。


0

在MacPorts上查找GRC程序。

我正在努力使其运行,以便为所有终端输出进行着色。它使用正则表达式解析所有内容,所以最终取决于你想编写多少正则表达式。


0

将以下内容添加到您的~/.profile [或~/.bashrc]文件中:

export MYSQL_PS1="$(echo -e '\033[1;32mmysql \d> \033[0m')"

0

对于着色,你只需要一个简单的echo即可。
由于mysql有:

system    (\!) Execute a system shell command.

你可以轻松地:

mysql_colorize_prompt_1

但是如果你只想要 prompt 有颜色,使用 rlwrap

mysql_colorize_prompt_2

如果你想给命令的结果上色,可以使用grc
这是一个脚本,我认为它读取下划线stdoutstderr并对其进行着色。你可以进行配置。由于它使用来匹配结果,在配置文件中你应该写regex

这里有一些截图


关于 ANSI 颜色的更多细节:

如何在 Linux 中更改 echo 的输出颜色


-2

你应该为你的终端仿真器或控制台窗口设置颜色方案。


嗯,我已经为我的终端设置了一个配色方案。我正在寻找特定于Mysql的东西。例如,如果每隔一行是不同的颜色,或者提示是不同的颜色,或者标题是不同的颜色。你明白我的意思吗? - Cory Collier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接