Skip to content

Commit

Permalink
修复密码含特殊字符使用plugins报错问题 (#1519)
Browse files Browse the repository at this point in the history
  • Loading branch information
nick2wang authored May 15, 2022
1 parent 7dc5e44 commit f1d8677
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 8 deletions.
2 changes: 1 addition & 1 deletion sql/archiver.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ def archive(archive_id):

pt_archiver = PtArchiver()
# 准备参数
source = fr"h={s_ins.host},u={s_ins.user},p={s_ins.password}," \
source = fr"h={s_ins.host},u={s_ins.user},p='{s_ins.password}'," \
fr"P={s_ins.port},D={src_db_name},t={src_table_name},A={s_charset}"
args = {
"no-version-check": True,
Expand Down
12 changes: 8 additions & 4 deletions sql/binlog.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,9 @@ def binlog2sql(request):
# 提交给binlog2sql进行解析
binlog2sql = Binlog2Sql()
# 准备参数
instance_password = shlex.quote(f'"{str(instance.password)}"')
args = {"conn_options": fr"-h{shlex.quote(str(instance.host))} -u{shlex.quote(str(instance.user))} \
-p'{shlex.quote(str(instance.password))}' -P{shlex.quote(str(instance.port))} ",
-p'{instance_password}' -P{shlex.quote(str(instance.port))} ",
"stop_never": False,
"no-primary-key": no_pk,
"flashback": flashback,
Expand Down Expand Up @@ -196,8 +197,9 @@ def binlog2sql_file(args, user):
"""
binlog2sql = Binlog2Sql()
instance = args.get('instance')
instance_password = shlex.quote(f'"{str(instance.password)}"')
conn_options = fr"-h{shlex.quote(str(instance.host))} -u{shlex.quote(str(instance.user))} \
-p'{shlex.quote(str(instance.password))}' -P{shlex.quote(str(instance.port))}"
-p'{instance_password}' -P{shlex.quote(str(instance.port))}"
args['conn_options'] = conn_options
timestamp = int(time.time())
path = os.path.join(settings.BASE_DIR, 'downloads/binlog2sql/')
Expand Down Expand Up @@ -252,8 +254,9 @@ def my2sql(request):
my2sql = My2SQL()

# 准备参数
instance_password = shlex.quote(f'"{str(instance.password)}"')
args = {"conn_options": fr"-host {shlex.quote(str(instance.host))} -user {shlex.quote(str(instance.user))} \
-password '{shlex.quote(str(instance.password))}' -port {shlex.quote(str(instance.port))} ",
-password '{instance_password}' -port {shlex.quote(str(instance.port))} ",
"work-type": work_type,
"start-file": start_file,
"start-pos": start_pos,
Expand Down Expand Up @@ -336,8 +339,9 @@ def my2sql_file(args, user):
"""
my2sql = My2SQL()
instance = args.get('instance')
instance_password = shlex.quote(f'"{str(instance.password)}"')
conn_options = fr"-host {shlex.quote(str(instance.host))} -user {shlex.quote(str(instance.user))} \
-password '{shlex.quote(str(instance.password))}' -port {shlex.quote(str(instance.port))} "
-password '{instance_password}' -port {shlex.quote(str(instance.port))} "
args['conn_options'] = conn_options
path = os.path.join(settings.BASE_DIR, 'downloads/my2sql/')
os.makedirs(path, exist_ok=True)
Expand Down
4 changes: 2 additions & 2 deletions sql/instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,12 +209,12 @@ def schemasync(request):
"sync-comments": sync_comments,
"tag": tag,
"output-directory": output_directory,
"source": r"mysql://{user}:'{pwd}'@{host}:{port}/{database}".format(user=shlex.quote(str(instance_info.user)),
"source": r"mysql://{user}:{pwd}@{host}:{port}/{database}".format(user=shlex.quote(str(instance_info.user)),
pwd=shlex.quote(str(instance_info.password)),
host=shlex.quote(str(instance_info.host)),
port=shlex.quote(str(instance_info.port)),
database=db_name),
"target": r"mysql://{user}:'{pwd}'@{host}:{port}/{database}".format(user=shlex.quote(str(target_instance_info.user)),
"target": r"mysql://{user}:{pwd}@{host}:{port}/{database}".format(user=shlex.quote(str(target_instance_info.user)),
pwd=shlex.quote(str(target_instance_info.password)),
host=shlex.quote(str(target_instance_info.host)),
port=shlex.quote(str(target_instance_info.port)),
Expand Down
2 changes: 1 addition & 1 deletion sql/sql_optimize.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def optimize_soar(request):
return HttpResponse(json.dumps(result), content_type='application/json')

# 目标实例的连接信息
online_dsn = "{user}:{pwd}@{host}:{port}/{db}".format(user=instance_info.user,
online_dsn = '{user}:"{pwd}"@{host}:{port}/{db}'.format(user=instance_info.user,
pwd=instance_info.password,
host=instance_info.host,
port=instance_info.port,
Expand Down

0 comments on commit f1d8677

Please sign in to comment.