【问题标题】:How to dump a database using mysql (no mysqldump on server)如何使用 mysql 转储数据库(服务器上没有 mysqldump)
【发布时间】:2009-10-20 16:27:15
【问题描述】:

我需要从一个没有安装mysqldump 的共享主机转储数据库。实际上,整套 MySQL 实用程序中只有 mysqlmysqladmin 可用。

这是可行的还是我需要安装类似 phpMyAdmin 的东西?

【问题讨论】:

    标签: mysql ssh


    【解决方案1】:

    您可以使用以下方法(来自文档中的Database Backups

    通过复制文件进行备份

    MyISAM 表存储为文件,因此通过复制文件进行备份很容易。要获得一致的备份,请对相关表执行 LOCK TABLES,然后对表执行 FLUSH TABLES。你只需要一个读锁;这允许其他客户端在您复制数据库目录中的文件时继续查询表。需要 FLUSH TABLES 语句来确保在开始备份之前将所有活动索引页写入磁盘。

    FLUSH TABLES WITH READ LOCK;
    

    关闭所有打开的表并使用读锁锁定所有数据库的所有表,直到您通过执行 UNLOCK TABLES 显式释放锁。如果您有像 Veritas 这样可以及时拍摄快照的文件系统,这是一种非常方便的备份方式。

    UNLOCK TABLES;
    

    制作分隔文本文件备份

    要创建包含表格数据的文本文件,您可以使用:

    SELECT * INTO OUTFILE 'file_name' FROM tbl_name
    

    此方法适用于任何类型的数据文件,但只保存表数据,不保存表结构。

    要重新加载输出文件,请使用"

    LOAD DATA INFILE
    

    【讨论】:

    • 这两种方法都需要 root 访问权限,所以我认为它们在这里没有帮助。
    • 它们都不需要root访问权限,这些命令都在mysql命令shell中运行。
    • 不幸的是,它确实需要数据库的 FILE 权限。
    【解决方案2】:

    关闭服务器并复制数据目录本身怎么样?

    【讨论】:

    • 不可能:这是共享主机,我没有 root 访问权限。
    【解决方案3】:

    你可以得到SQLYog。它有一个备份数据库作为每个数据库的 SQL Dump 选项。

    【讨论】:

      【解决方案4】:

      无论如何,

      我不得不求助于Sypex dumper,这是一个基于 Web 的工具,用于快速(非常快,例如比 phpMyAdmin 快得多)MySQL 数据库转储。是俄文的,但界面相当明显。

      【讨论】:

        【解决方案5】:

        您可以使用 mysqldump 远程连接到服务器。例如:

        mysqldump -u poweruser -h remote.mysql.host database 
        

        【讨论】:

        • 如果大多数管理员(包括我自己和有问题的管理员)没有出于安全原因禁用远程 MySQL 访问,那就太好了。
        • downvoted:问题表明没有可用的mysqldump
        【解决方案6】:

        Maatkit 似乎非常适合 mk-parallel-dumpmk-parallel-restore

        【讨论】:

          猜你喜欢
          • 2013-03-06
          • 2019-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-22
          • 1970-01-01
          相关资源
          最近更新 更多