_find_sysdb.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. # -*- coding: utf-8 -*-
  2. """探测 165 服务器上 sys_menu / sys_role_menu 所在的库。"""
  3. from __future__ import annotations
  4. import pymysql
  5. CONN = dict(host="123.60.180.165", port=3306, user="aidopremote", password="1234567890aiDOP#",
  6. charset="utf8mb4", connect_timeout=15)
  7. conn = pymysql.connect(**CONN)
  8. try:
  9. cur = conn.cursor()
  10. cur.execute("SHOW DATABASES")
  11. dbs = [r[0] for r in cur.fetchall()]
  12. print("DATABASES", dbs)
  13. for db in dbs:
  14. if db in ("information_schema", "mysql", "performance_schema", "sys"):
  15. continue
  16. try:
  17. cur.execute(
  18. "SELECT TABLE_NAME FROM information_schema.TABLES "
  19. "WHERE TABLE_SCHEMA=%s AND LOWER(TABLE_NAME) IN ('sysmenu','sysrolemenu','sysuser','systenant','sys_menu','sys_role_menu')",
  20. (db,),
  21. )
  22. hits = [r[0] for r in cur.fetchall()]
  23. if hits:
  24. print(db, "->", hits)
  25. except Exception as e:
  26. print(db, "ERR", e)
  27. finally:
  28. conn.close()