【问题标题】:Is there a library / tool to query MySQL data files (MyISAM / InnoDB) without the server? (the SQLite way)是否有库/工具可以在没有服务器的情况下查询 MySQL 数据文件(MyISAM / InnoDB)? (SQLite 方式)
【发布时间】:2023-03-14 22:30:02
【问题描述】:

通常我想在没有运行服务器或无法访问服务器(但对文件具有读/写权限)的情况下直接查询我的 MySQL 数据。

是否有一个工具或者甚至是一个库来查询 MySQL 数据文件,就像使用 SQLite 一样?我特别在寻找 InnoDB 和 MyISAM 支持。性能不是一个因素。

我对 MySQL 的内部结构一无所知,但我认为应该可以做到并且不难得到具体的代码?

感谢您的任何建议!

【问题讨论】:

    标签: sql mysql sqlite


    【解决方案1】:

    MySQL 提供了一个客户端库,它基本上是一个微型服务器。它被称为 libmysqld。不过,它只是 C/C++。根据文档,它将相同的 API 导出到普通的 C/C++ 客户端库。

    MySQL Embedded client library

    【讨论】:

    • 谢谢,这正是我想要的。我想有人可以制作一个工具来完成我需要的这个库。有谁知道已经包含这个库并连接到任何 MySQL 数据目录的命令行程序?
    【解决方案2】:

    我假设您正在进行测试/开发工作并且不想运行服务器。 不久前我不得不这样做,我想出的最好的方法是将其导出到 SQL 并将其加载到内存中:

    mysqldump -u root -pPASSWORD DATABASENAME TABLENAME > table.sql
    

    HSQLDB 是用于 java 的内存中关系数据库,您可以在其中运行查询,进行所需的修改,然后重新导出 .sql 文件。有点迂回的做法......

    【讨论】:

    • 问题是我还需要更新数据。我通常对这个问题的解决方案感兴趣,但你知道,我正在使用 BASH 脚本配置一个新的 Xen 域,并且需要在服务器启动之前更新一个表。我已经挂载了数据。
    • 更新相当简单,你能用占位符创建一个表然后替换它们吗?还是需要对表进行关系/事务操作?
    猜你喜欢
    • 2011-04-21
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    相关资源
    最近更新 更多