从控制台(例如cmd.exe)运行mysql和mysqlsh有什么区别?

JL_*_*_SO 6 mysql

在 Windows 上我可以运行

C:\WINDOWS\system32>mysql -u root -pxxxx
Run Code Online (Sandbox Code Playgroud)

或者有一个类似 shell 的程序"MySQL Shell x.y\bin\mysqlsh.exe"

从高层次来说,这两者之间有什么区别?你什么时候会使用其中一种而不是另一种,为什么?我在 Oracle 上使用 sqlplus 有很多经验;mysqlsh 是否像 sqlplus 一样,从某种意义上说,它提供的功能比通过 cmd.exe 进行的控制台访问要多得多?

提前致谢。

Bil*_*win 9

MySQL Shell 是客户端功能的超集mysql。它具有旧客户端所没有的几个功能,例如:

  • 除了 SQL 语句之外,您还可以使用 Python 或 Javascript 编写语句,因此您可以编写脚本来执行您可以在 Python 或 Javascript 中想象到的任何类型的循环或条件代码。

  • 您可以同时连接到多个 MySQL 会话,例如连接到多个服务器。

  • 您可以以不同的格式输出查询结果,包括 JSON。

  • 您可以使用“X 协议”,它允许您像 NoSQL 服务器而不是 SQL 服务器一样查询 MySQL。

MySQL Shell 在某种程度上被视为传统mysql客户端工具的继承者。但它是一个相对较新的工具,可能有一些未被发现的错误(任何新软件都有)。

mysql工具不会消失。有太多的应用程序和脚本广泛使用旧的客户端工具,虽然新的 MySQL Shell 可以执行相同的任务,但用法不同,因此为了向后兼容,我假设旧的工具将永远存在。

有关更多信息,请参阅:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-features.html