请教大佬们,如何在一台没有 mysql 环境的 Linux 上发起远程 sql 查询命令? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Aliberter
V2EX    程序员

请教大佬们,如何在一台没有 mysql 环境的 Linux 上发起远程 sql 查询命令?

  •  
  •   Aliberter 2021-10-28 09:57:33 +08:00 3414 次点击
    这是一个创建于 1527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚开始写 shell 脚本,是这么写的:

    event_ids=$(mysql -h 192.168.0.211 -D statistics -u root -p1234 -se "select id from event_name where is_active = 1"); 

    后来发现 shell 脚本的这台机器上没装着 mysql ,不能这么写,有其他的方法吗,大佬们,求助~~~ 最终目标就是在 shell 脚本里远程查询 211 上 mysql 的这条 sql ,获取 id 数组赋给 event_ids

    第 1 条附言    2021-10-28 11:50:24 +08:00

    多谢大佬们,解决了,ssh远程命令是最简单的办法,我咋就没想到呢哈哈

    event_ids=$(ssh [email protected] "mysql -h 192.168.0.211 -D statistics -u root -p1234 -se 'select id from event_name where is_active = 1'");

    22 条回复    2021-10-28 15:47:40 +08:00
    villivateur
        1
    villivateur  
       2021-10-28 10:02:10 +08:00 via Android
    首先你必须要有一个 MySQL 客户端,你可以试试用 python 脚本,装个 MySQL 库
    Aliberter
        2
    Aliberter  
    OP
       2021-10-28 10:02:40 +08:00
    如果没有直接的办法,有啥曲线救国的方法都行,集思广益下
    Aliberter
        3
    Aliberter  
    OP
       2021-10-28 10:03:40 +08:00
    @villivateur 好~如果没别的办法只能装个 mysql 了~
    Aliberter
        4
    Aliberter  
    OP
       2021-10-28 10:07:20 +08:00
    比如我刚刚想的,在自己 Java 接口项目里去查数据库,然后提供个接口,然后用 shell 脚本去请求接口获取数据,怎么样?... 虽然有点脱裤子放 P 的感觉 哈哈哈 有大佬能简单帮我写下怎么用 shell 请求接口获取一个 id 数组的写法吗?
    Vegetable
        5
    Vegetable  
       2021-10-28 10:12:44 +08:00
    有没有考虑换个思路,整个脚本用 py 写?
    vonsy
        6
    vonsy  
       2021-10-28 10:15:25 +08:00
    docker 装个 adminer
    momocraft
        7
    momocraft  
       2021-10-28 10:16:17 +08:00
    bash 写 sql 需要痛苦的转义 不推荐

    真的想 shell 查可以下个 mysql 客户端放到家目录
    0xC000009F
        8
    0xC000009F  
       2021-10-28 10:16:47 +08:00
    装个第三方 mysql 命令行客户端试试,比如 mycli 。
    CallMeReznov
        9
    CallMeReznov  
       2021-10-28 10:17:49 +08:00
    写接口用 shell 没毛病嘛.
    如果不是要经常换环境的话,装个 mysqlcli 也不麻烦呀
    tianyunperfect
        10
    tianyunperfect  
       2021-10-28 10:18:20 +08:00
    @0xC000009F 对,正解
    liuxey
        11
    liuxey  
       2021-10-28 10:22:05 +08:00
    我之前遇到过一个场景,只有一台远程的 Linux 能访问一个 SQLServer 数据库,于是我在 Linux 上装了 python 的 sqlserver 包,启动 REPL 模式,“在线”查询
    assiadamo
        12
    assiadamo  
       2021-10-28 10:30:17 +08:00
    最简单的就是装 mysqlcli
    不能装只能写程序了,以 java 举例,就是 import 一下 mysql driver 用 jdbc 查询
    ericls
        13
    ericls  
       2021-10-28 10:32:43 +08:00 via iPhone
    TCP
    crackhopper
        14
    crackhopper  
       2021-10-28 10:33:44 +08:00
    启动个 ssh 转发,反向代理之类的,可以直接登录到远程机器上。不过我忘了命令是啥了。
    ksc010
        15
    ksc010  
       2021-10-28 10:35:14 +08:00
    用 ssh 远程执行命令
    F281M6Dh8DXpD1g2
        16
    F281M6Dh8DXpD1g2  
       2021-10-28 10:38:38 +08:00
    所以你们现在 jdbc ,odbc 都不会用了是么.....
    CnpPt
        17
    CnpPt  
       2021-10-28 10:39:50 +08:00
    我是有 docker 环境 直接用的容器里的命令
    basefas
        18
    basefas  
       2021-10-28 10:45:02 +08:00
    不用 shell ,用 go 写,打包二进制执行
    auxox
        19
    auxox  
       2021-10-28 11:04:54 +08:00
    MySQL 是 CS 架构的服务。没有 C ,怎么访问 S...
    fxxkgw
        20
    fxxkgw  
       2021-10-28 11:14:03 +08:00
    python paramiko 先连接到 211 机器,然后执行命令,几行脚本吧;但是必须要有 ssh 过去的权限
    yijihu
        21
    yijihu  
       2021-10-28 14:03:42 +08:00
    phpadmin
    icepie
        22
    icepie  
       2021-10-28 15:47:40 +08:00
    go + gorm 写个简单的程序
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2484 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 09:13 PVG 17:13 LAX 01:13 JFK 04:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86