Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ 问题咨询 ] 配置了隧道的实例提交SQL上线时出现连接错误Connection refused #951

Closed
littlemon95 opened this issue Oct 31, 2020 · 11 comments
Labels
question Further information is requested wontfix This will not be worked on

Comments

@littlemon95
Copy link

问题描述

  1. 配置了ssh隧道的实例提交SQL上线,点击SQL检测按钮后出现错误
    image
  2. 未配置ssh隧道的实例,提交SQL上线时流程正常,没有此错误
  3. 配置了ssh隧道的实例:连接测试正常,SQL查询正常
  4. gevent模式已修改为sync模式

版本信息

  • 应用版本/分支:Release v1.7.13
  • 部署方式:Docker
@littlemon95 littlemon95 added the question Further information is requested label Oct 31, 2020
@littlemon95
Copy link
Author

日志文件无异常信息

@hhyo
Copy link
Owner

hhyo commented Oct 31, 2020

这个情况应该检查一下goInception的日志

查询正常一般情况下代表通过goIncetion可以正常链接mysql,不过如果查询用户是管理员时除外,因为管理员不做权限校验,不依赖goInception语法解析,可以使用普通用户进行查询验证一下

@littlemon95
Copy link
Author

这个情况应该检查一下goInception的日志

查询正常一般情况下代表通过goIncetion可以正常链接mysql,不过如果查询用户是管理员时除外,因为管理员不做权限校验,不依赖goInception语法解析,可以使用普通用户进行查询验证一下

按照大佬的提示使用普通用户查询,确实在goInception的日志中查到异常了
time="2020/10/31 17:53:53.624" level=error msg="con:143 con:143 dial tcp 127.0.0.1:46295: connect: connection refused" file=session_inception.go func=parseOptions line=2064
而且archery日志中出现异常信息:

  File "/opt/archery/sql/query_privileges.py", line 69, in query_priv_check
    table_ref = _table_ref(sql_content, instance, db_name)
  File "/opt/archery/sql/query_privileges.py", line 407, in _table_ref
    query_tree = engine.query_print(instance=instance, db_name=db_name, sql=sql_content).get('query_tree')
  File "/opt/archery/sql/engines/goinception.py", line 142, in query_print
    print_info = self.query(db_name=db_name, sql=sql).to_dict()[1]
IndexError: list index out of range

前台错误截图:
image

是需要在goInception的容器中也配置ssh隧道吗?

@hhyo
Copy link
Owner

hhyo commented Oct 31, 2020

你前面有提交过相同的issue #890

确认一下gevent修改的入口是否正确,关于docker启动配置,参考:#923

@littlemon95
Copy link
Author

你前面有提交过相同的issue #890

确认一下gevent修改的入口是否正确,关于docker启动配置,参考:#923

检查确认过了,修改的是/opt/archery/src/docker/startup.sh 文件,最后一行的gevent模式已修改为sync,docker也重启过了

@hhyo
Copy link
Owner

hhyo commented Nov 1, 2020

docker网络默认是桥接模式,127.0.0.1 访问不到宿主机的端口,可以调整为host模式

@littlemon95
Copy link
Author

docker网络默认是桥接模式,127.0.0.1 访问不到宿主机的端口,可以调整为host模式

感谢大佬的解疑,果然是这个原因,桥接模式下访问不到宿主机的端口,调试了几天终于调整好了,需要将goInception、inception和archery同时使用host模式建立容器才行。

果然还是吃了docker不熟练的亏😭

@littlemon95
Copy link
Author

docker网络默认是桥接模式,127.0.0.1 访问不到宿主机的端口,可以调整为host模式

感谢大佬的解疑,果然是这个原因,桥接模式下访问不到宿主机的端口,调试了几天终于调整好了,需要将goInception、inception和archery同时使用host模式建立容器才行。

果然还是吃了docker不熟练的亏😭

👍非常感谢

@stale
Copy link

stale bot commented Nov 21, 2020

你已经很久没有回复这个issue了,如果没有进一步的信息的话, 会作为不活跃issue关闭, 感谢你对本项目的贡献。
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Nov 21, 2020
@stale stale bot closed this as completed Nov 24, 2020
@linuxdevopscn
Copy link

docker网络默认是桥接模式,127.0.0.1 访问不到宿主机的端口,可以调整为host模式

感谢大佬的解疑,果然是这个原因,桥接模式下访问不到宿主机的端口,调试了几天终于调整好了,需要将goInception、inception和archery同时使用host模式建立容器才行。

果然还是吃了docker不熟练的亏😭

这是一个大坑啊,,,,,我也遇见了,改改试试吧。

@linuxdevopscn
Copy link

cd ..

docker网络默认是桥接模式,127.0.0.1 访问不到宿主机的端口,可以调整为host模式

感谢大佬的解疑,果然是这个原因,桥接模式下访问不到宿主机的端口,调试了几天终于调整好了,需要将goInception、inception和archery同时使用host模式建立容器才行。
果然还是吃了docker不熟练的亏😭

这是一个大坑啊,,,,,我也遇见了,改改试试吧。

方案可行! 成功运行!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

3 participants