2

免责声明:我是一个总green horn

我正在使用PhpStormWindows,它提供了一种在开发过程中创建和管理数据库的便捷方式。不幸的是,现在我想推动生产,将数据库上传到Cloadways (Digital Ocean Server)似乎并不那么简单。

CloudwaysDatabase Manager有一个导入功能,需要.gz(gzip) 文件。gzip不能从目录创建文件,但在 Windows 上mysql为每个文件创建目录并用( )database填充它们。table files.ibd

我读过您可以.tar先将目录压缩成文件,然后再将gzip它们(database.tar.gz)压缩,这就是我尝试过的。但是当我尝试使用它导入它们时,database manager它只显示:

在此处输入图像描述

有没有办法做到这一点?

4

1 回答 1

0

以下是将数据从开发机器迁移到另一个 MySQL 服务器所需的内容: 一个名为的文本文件whatever.sql,其中包含表的定义和内容(以及视图和存储的函数以及所有其他数据库对象)。这种文本文件通常称为mysqldump文件。您会发现这些文件包含一大堆 SQL 语句,主要是 CREATE TABLE 和 INSERT。它们还包含一些行,例如

/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;

这些看起来像注释,但是当您加载文件时,它们会作为 SQL 语句处理,因此请不要理会它们。

您可以在文件上使用gzip(1)以使其更小,Cloudways 会正确处理它。有或没有 gzip 都可以。

如何导出

使用 PhpStorm,打开数据库面板并右键单击您的数据库名称(不是服务器名称本身,而是您的应用程序的数据库)。您将看到一个带有 mysqldump 的菜单项 Export。点击它。您可以保留默认复选框设置。

然后为您的输出提供文件名并运行导出。

我在 linux 上使用 PhpStorm,所以我不完全确定这个导出在 Windows 上是否有效。如果没有,请下载 Ansgar Becker 的免费且出色的 Windows MySQL 客户端程序HeidiSQL。右键单击数据库名称,然后选择Export Database as SQL。选中创建表框并从数据下拉列表中选择插入。

如何导入生产

  1. 登录生产 MySQL 服务器。
  2. 创建数据库并选择它。Cloudways 看起来像是为您做的。如果没有,请发出这些 SQL 语句。
     CREATE DATABASE myDatabaseName;
     USE myDatabaseName;
    
  3. 使用适当的工具运行whatever.sql文件中的所有 SQL。Cloudways 看起来也适合您。如果没有,这个命令行或类似的东西可能会起作用。
    mysql --user=yourMySQLUserName --password=secret\  
          --database=myDatabaseName\
          --host=cloudways.example.com < whatever.sql
    

您的迁移将完成。

额外奖励:如果您的whatever.sql文件包含生产数据库的初始状态,您可以将其放入 git(或其他源代码控制)中,并在您部署软件包的新实例时使用它。

不要试图将这些.ibd文件和其他由 MySQL 管理的文件复制到另一台机器上。如果你这样做了,你会后悔的。

于 2021-11-08T14:26:38.620 回答