当前位置:论坛首页 > BUG提交 > Linux面板

【已解答】MySql 密码含特殊字符备份失败

发表在 BUG提交2022-6-13 13:59 [复制链接] 5 5403

面板版本:宝塔linux面板 7.9.2
系统版本:CentOS Linux release 7.9.2009 (Core)
问题现象:备份代码未考虑密码本身具有特殊字符时的情况,导致备份失败。
重现方式:mysql8.0 数据库密码为类似【b66v4_vX+b-,X&aDvb12)(sPre,&a*】,因含有特殊字符,而代码拼接出的 mysqldump 命令中 -p 参数内容没有用引号引起来会导致命令执行错误从而备份失败,由于未产生备份文件,后面会报 FileNotFoundError 错误,整个备份工作失败。
在/www/server/panel/class/panelBackup.py  559 行开始下面的几行
20220613-001.jpg
导致
20220613-002.jpg

经试验,上述代码拼接命令处改为下面所示后,备份成功:
  1. backup_cmd = mysqldump_bin + " -h " + conn_config['db_host'] + " -P " + str(conn_config['db_port']) + " -E -R --default-character-set="+ character +" --force --hex-blob --opt " + db_name + " -u " + str(conn_config['db_user']) + " -p'"+str(conn_config['db_password'])+"' 2>"+self._err_log+"| gzip > " + dfile
复制代码





使用道具 举报 只看该作者 回复
发表于 2022-6-13 15:04:03 | 显示全部楼层
您好,您是通过命令行修改的吗?面板内是有判断过滤一些特殊字符的
25.png
使用道具 举报 回复 支持 反对
发表于 2022-6-13 15:59:10 | 显示全部楼层
谢花郎 发表于 2022-6-13 15:04
您好,您是通过命令行修改的吗?面板内是有判断过滤一些特殊字符的

这样的逻辑并不能覆盖到很多情况,宝塔自己的本机数据库在面板操作时不允许特殊符号做密码,但无法限制别人用命令行修改数据库,另外宝塔提供的添加远程数据库功能,这样也限制不到别人的远程数据库密码格式的,阿里云、腾讯云的云数据库密码格式可以有特殊符号,纳管到宝塔里后做备份就会报错。
使用道具 举报 回复 支持 反对
发表于 2022-6-19 11:41:12 | 显示全部楼层
宝塔用户_gexvvk 发表于 2022-6-13 15:59
这样的逻辑并不能覆盖到很多情况,宝塔自己的本机数据库在面板操作时不允许特殊符号做密码,但无法限制别 ...

感谢您的反馈,目前面板上的数据库密码规则没法完全兼容市面上云数据库包含特殊符号密码格式,后续会逐步兼容。
使用道具 举报 回复 支持 反对
发表于 2022-6-28 16:50:02 | 显示全部楼层
本帖最后由 宝塔用户_gexvvk 于 2022-6-28 16:54 编辑
大炮运维V587 发表于 2022-6-19 11:41
感谢您的反馈,目前面板上的数据库密码规则没法完全兼容市面上云数据库包含特殊符号密码格式,后续会逐步 ...

(1)宝塔在 mysql 所支持的数据库密码上限定了格式,我想是有其自己的理由的。这里并不需要讨论这个限制是否合理。
(2)也并不需要在密码格式上兼容别的所有云数据库厂商,只需在宝塔的备份程序里拼接 mysqldump 命令的时候加下引号就可以解决这个问题,这是 mysqldump 命令的选项。

如下图,我这里已经测试过了。


文件位置:/www/server/panel/class/panelBackup.py

20220628-001.jpg

使用道具 举报 回复 支持 反对
发表于 2022-6-30 09:44:58 | 显示全部楼层
宝塔用户_gexvvk 发表于 2022-6-28 16:50
(1)宝塔在 mysql 所支持的数据库密码上限定了格式,我想是有其自己的理由的。这里并不需要讨论这个限制 ...

感谢您的反馈,后续我们会进行优化,采取更合理的方式解决这个问题!
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表