【问题标题】:Autocomplete in MySQL under WindowsWindows下MySQL中的自动完成
【发布时间】:2010-09-21 03:27:18
【问题描述】:

有人知道是否有办法在 Windows 下的 MySQL 命令行客户端中实现自动完成功能?对我来说,它在 Linux 下运行良好,但只是在 Windows 下移动光标。

【问题讨论】:

    标签: mysql windows mysql-management


    【解决方案1】:

    它应该这样工作:

    C:\> mysql --auto-rehash
    

    或者配置你的my.cnf:

    [mysql]
    auto-rehash
    

    编辑:我很抱歉。我发现一些参考资料表明 mysql 客户端中的制表符完成功能仅适用于 UNIX/Linux。它不适用于 Windows。

    更新: 原因在 MySQL bug #4731 中有简要提及:

    [2004 年 7 月 31 日 12:47] 谢尔盖 Golubchik

    我刚刚下载了 4.0.15 - 命令 在 mysql.exe 中完成不是 工作,正如预期的那样。从来没有 在 mysql.exe 中工作,因为我们是 无法使 readline 编译 用 VC++。

    mysqlc.exe 是 cygwin 构建的,它与 readline 链接。

    说明:GNU readline 是用于处理用户输入的标准开源库。 MySQL 团队使用 readline 库,但他们不是它的作者。从上面的评论中,我了解到他们在 Windows 上使用 Microsoft Visual C++(他们用来构建 MySQL 产品的工具)编译 readline 库是不成功的。部分开源项目尚未完全兼容 Microsoft Windows 环境。

    过去,MySQL 产品提供了一个替代客户端,他们称为 mysqlc.exe,他们使用 Windows 上的 cygwin 工具集编译该客户端,但他们不再提供此功能。 cygwin 工具集包含 readline 库,因此可以编译支持制表符补全的mysqlc.exe 客户端。

    所以理论上,如果你真的很勇敢,你可以下载包含 readline 库的 cygwin 工具集,然后下载 MySQL 源代码并使用 cygwin 构建它。然后你应该有一个可以执行tab-completion的mysql客户端程序。但即使对于熟悉从源代码构建 MySQL 的人来说,这听起来也需要做很多工作。

    【讨论】:

    • 非常感谢超级详细的解释。我认为 MySQL 人应该找到一种方法来解决这个问题,即使是以使用另一个库为代价——我不认为这是不可能的或那么昂贵。但是,是的,在那之前我们几乎什么都做不了。
    • 我实际上已经找到了一个基于 Win32 Visual Studio 的 readline 构建:gnuwin32.sourceforge.net/packages/readline.htm - 所以也许 mysql 的人可以重新使用它。作为对你提到的错误的评论添加。跨度>
    • 目前 cygwin 的安装程序中有 mysql 包可用,无需编译。
    【解决方案2】:

    这可能不是您想要的,但企业版 SQLYog 提供了一些有限的架构自动完成功能。

    【讨论】:

    • 谢谢,SQLYog 是一个很棒的工具,但有时命令行是最好的。
    • 不知道为什么他们不能更好地查看 postgres 客户端源代码,并且 ctrl-c 不会引导您(延迟)。
    【解决方案3】:

    如果上述方法不起作用并且您使用的是 widnows 10,您可以安装 linux shell,然后安装 mysql-client 并像在自动编译工作的 linux 终端中一样连接。

    说明: https://docs.microsoft.com/en-us/windows/wsl/install-win10

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 2011-07-15
      相关资源
      最近更新 更多