Technology Sharing

  • 首页
  • 资料分享
  • 在线工具
    • 随机密码生成器
  • 介绍
  • RSS
  • privacy
  • 云产品推广
    • 腾讯云
    • 阿里云
Share IT knowledge
  1. 首页
  2. linux
  3. 正文

[Solved] MariaDB import issue: Error at line 1: Unknown command '\-'.

2024年7月9日 273点热度 0人点赞 0条评论

MariaDB和MySQL已经存在很长时间,并且在保持兼容性和解决安全问题之间一直存在着一种难以平衡的挑战。MariaDB最新的错误修复版本中为提高安全性做出了一些更改,这些更改可能会稍微破坏兼容性,但我们提供了解决方法。在本文中,我们将解释这些更改的原因及如何尽可能轻松地解决问题。

问题背景

我们正在解决的问题是,有可能生成一个恶意的MariaDB转储文件,该文件可以通过MariaDB客户端执行shell命令。为了防止这种情况发生,我们需要非常迅速地采取措施。具体解决措施详见MDEV-21178,其实质是引入了一种新的“沙盒模式”来禁用MariaDB客户端中的系统命令。

变更详情

MariaDB客户端现在有一个选项--sandbox或MariaDB客户端提示命令\-。这个选项将在会话的剩余时间内启用沙盒模式,直到断开连接。一旦进入沙盒模式,任何可以在shell上执行操作的命令都将被禁用。

此外,在转储文件的最顶部(注释中),mariadb-dump工具添加了一个命令来触发沙盒模式,如下所示:

/*!999999 \- enable the sandbox mode */

MariaDB和MySQL客户端会将其简化为反斜杠和破折号,然后尝试使用破折号执行内部命令。问题在于,旧版本的MariaDB客户端和所有版本的MySQL客户端都不理解这个命令,因此会报错,这就是兼容性问题。

受影响的版本

这一变更影响到以下MariaDB版本:10.5.25、10.6.18、10.11.8、11.0.6、11.1.5、11.2.4和11.4.2。如果您从这些版本中获取转储并尝试将其导入到不受支持的版本(如10.4)或较旧的错误修复版本(如10.5.24),则会遇到兼容性问题。

解决方法

值得庆幸的是,有多种方法可以避免这些兼容性问题,特别是如果您希望将MariaDB导出导入到旧版本或MySQL。   以下是一些建议:

1、使用具有更改的MariaDB服务器版本的安全客户端导入转储

2、导入时删除对应的行

sed -i '1s/\\-//' filename.sql

3、导入时忽略对应的行

tail -n +2 filename.sql | mysql -u username -p database_name

引用

https://mariadb.org/mariadb-dump-file-compatibility-change/

打赏微海报分享
标签: 暂无
最后更新:2024年7月9日

nico

Linux运维工程师 软考网络工程师 && 软考信息安全工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

nico

Linux运维工程师
软考网络工程师 && 软考信息安全工程师

最新 热点 随机
最新 热点 随机
linux部署JDK环境 [Solved] MariaDB import issue: Error at line 1: Unknown command '\-'. Could not retrieve mirrorlist http://mirrorlist.centos.org/ CentOS 7 Kubernetes如何删除卡在“Terminating”状态的命名空间 解决GitLab Runner签名无效 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口
把ChatGPT部署到自己的网站 Git Bash下使用rsync 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口 Ubuntu apt安装nginx 修改wordpress后台登录地址 Centos7 yum安装MySQL8
最近评论
woodcockkienzlelsj8o9+73s48g9rr3m0@gmail.com 发布于 10 个月前(07月17日) necessitatibus corporis et odit nam quo harum et c...
RonaldG 发布于 10 个月前(07月07日) Very interesting topic, thank you for putting up.&...
小黑 发布于 1 年前(12月28日) 不错
nico 发布于 2 年前(02月09日) 嘻嘻嘻!!!
Bruse 发布于 2 年前(02月09日) 我来啦!!!
nico 发布于 2 年前(12月10日) 方便查询
Justin 发布于 2 年前(12月10日) 写的很好,谢谢分享!我 Mark 一下~
nico 发布于 3 年前(11月18日) 主题的原因吧
Justin 发布于 3 年前(09月22日) 这篇文章的质量很高呀!写得很详细~ 话说你的文章是隐藏了发布时间吗?
Justin 发布于 3 年前(08月27日) 好家伙,这标题乍一看还以为你打算进军英文技术写作领域了🤓

COPYRIGHT © 2023 Technology Sharing. ALL RIGHTS RESERVED.

备案图标 皖公网安备34132402000202 皖ICP备2023004851号-1