V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Aliberter
V2EX  ›  程序员

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

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

    刚开始写 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 远程执行命令
    liprais
        16
    liprais  
       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   ·   实用小工具   ·   3255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:26 · PVG 20:26 · LAX 04:26 · JFK 07:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.