【问题标题】:Deprecation of "replace" utility in mysql: what's the alternative?在 mysql 中弃用“替换”实用程序:替代方案是什么?
【发布时间】:2018-09-20 12:18:46
【问题描述】:

我在我们的脚本中使用replace 实用程序 (mysql/5.7.21/bin/replace),因为它的语法非常简单,并且与“sed”相比更易于使用。 但是,通过 mysql 版本升级,我开始得到以下信息:

Warning: replace is deprecated and will be removed in a future version.

注意到该实用程序计划在 MySQL 8.0 中删除。

参考:https://dev.mysql.com/doc/refman/5.7/en/replace-utility.html

我们知道 MySQL 将要引入的任何类似替代方案吗?

【问题讨论】:

  • 这似乎不合适,它与数据库无关。我想这就是他们删除它的原因。
  • 官方文档中也没有任何内容。所以@Barmar 的推理完全有道理,而且可能是正确的。您可以在 MySQL 板上打开一张票,看看他们对此有何评论。

标签: mysql replace


【解决方案1】:

Bill Karwin 的回答不正确。

各种 MySQL 发行版附带的 replace 实用程序和来自 replace.richardlloyd.org.uk 的实用程序是完全不同的程序,具有不同的语法和不同的作者。

替换 MySQL 提供的实用程序

  • 用于说明语法的示例:replace foo bar -- file.txt。可以通过将它们放在-- 分隔符之前来指定多个替换,例如:replace foo bar lorem ipsum -- file.txt
  • 作者是 Monty,版权归甲骨文公司所有
  • 大小写敏感始终

Richard K. Lloyd 替换实用程序

  • 使用完全不同的语法。要指定多个替换对,可以使用-a 开关,例如replace foo bar -a lorem ipsum file.txt。可以使用多个-a 开关。
  • 作者:Richard K. Lloyd
  • 默认情况下不区分大小写。可以使用-e 开关启用区分大小写的搜索。
  • 为 CentOS / RHEL 打包为二进制文件,可被视为 MySQL 的replace 实用程序用户的替代方案:

正如here 所说,这两个程序都已为 CentOS / RHEL 打包,例如:

yum install https://extras.getpagespeed.com/release-el$(rpm -E %{rhel})-latest.rpm

那么,对于 Richard K. Lloyd's replace

yum install replace2 

或者,对于 Oracle 的 replace

yum install replace 

【讨论】:

  • 我已经删除了我的答案。
【解决方案2】:

实际上,随着时间的推移,我发现了一个替代的独立开源实用程序,它的工作方式更像是替换,并且适用于 Linux 和 Mac:http://www.laffeycomputer.com/rpl.html

在 Mac 上可以使用 Homebrew 安装:

brew install rpl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2016-08-16
    相关资源
    最近更新 更多