【问题标题】:How to connect to a remote MySQL from an Azure SQL server/database如何从 Azure SQL 服务器/数据库连接到远程 MySQL
【发布时间】:2021-05-14 09:32:22
【问题描述】:

对不起,如果标题不太清楚,可能我没有找到我需要的东西,因为我不知道如何搜索

我有几个 MySQL 服务器是独立的在线服务器(来自不同的 wordpress),我想将这些数据库/平板电脑上的一些数据加载到位于 Azure 上的 SQL 数据库中。

在 Azure 门户本身内部,我看不到在哪里建立外部连接,无论是在服务器级别,还是在数据库级别

我下载并安装了 Microsoft SQL Server Management Studio,连接到服务器,我可以看到我的数据库和主数据库、带有登录名的安全性和集成服务目录,仅此而已。

我正在寻找类似的东西: https://www.jetbrains.com/help/go/db-tutorial-connecting-to-ms-sql-server.html#step-3-connect-to-microsoft-sql-server-with-datagrip 但无处...

可能是这样的: https://www.devart.com/odbc/mysql/docs/microsoft_sql_server_manager_s.htm 但我的 SSMS 上没有可用的服务器对象选项

可以这样做吗?

注意:Azure 数据库现在是一个基本的 wfor,如果这是一个限制的话

【问题讨论】:

  • my database 是指few MySQL servers 吗?和the master one 你的意思是Azure SQL server 吗?如果我正确理解您的问题,您希望将数据从few MySQL servers 迁移到一个Azure SQL server,那么可能datamigration.microsoft.com/scenario/mysql-to-azuresqldb?step=1 会有所帮助?
  • 不是迁移,而是连接,我想每天将一些数据从 MySQL 加载到 AzureSQL,同时 WP 和 MySQL 继续工作
  • 在 Azure 中,您创建了一个全新的数据库,其物理位置位于 Azure 的数据中心之一。您无法通过 Azure 连接到另一个数据库,因为它不是数据库管理器。因此,如果您想将不同的数据库整合到一个 Azure 数据库中,则必须将该数据复制并粘贴(迁移)到 Azure 数据库。
  • @AmyChodorowski, hooou,这对 Azure DB 来说是一个非常讨厌的限制......,它曾经非常简单地用于本地管理 SQLservers 很久以前(我管理它们就像几年前一样)跨度>

标签: mysql azure ssms etl azure-sql-server


【解决方案1】:

一些选择。

  1. 在您的 SQL Server Management Studio 中创建一个指向每个 MySQL 实例的链接服务器。您找到了相关说明。 https://www.devart.com/odbc/mysql/docs/microsoft_sql_server_manager_s.htm 但它可能在 Azure SQL Server 中不起作用;您无权访问底层 Windows 操作系统来安装您需要的 MySQL ODBC 驱动程序之类的东西。 (如果他们可以提供帮助,您可以咨询 Azure 技术支持。)

  2. 在每个 MySQL 实例中,尝试创建与 SQL Server 中相应表的联合表连接。然而,跨供应商联盟的东西只适用于 MariaDB; MySQL 的联邦仅适用于 MySQL MySQL。

  3. 为自己编写一个专门构建的提取/转换/加载 (ETL) 程序,并安排每隔一段时间运行一次。对其进行编程以连接到所有涉及的服务器,检索需要从 MySQL 服务器传输的数据,并在 SQL 服务器上更新/插入该数据。

  4. (edit) 您可以使用命令行 SQL 客户端程序。 mysqldump 及其 --compatible 选项可以在文件中生成可用的 INSERT 语句。然后,您可以使用 sqlcmd 在您的 Azure 服务器上运行这些 INSERT。这需要一些hacking,并且可能需要使用sed(1)awk(1) 来使MySQL 输出与SQL Server 兼容。

我相信第三个选项是最适合生产使用的选项。

【讨论】:

  • @o-jones 非常感谢您的解释! 1) 真的很伤心,这条路在 AzureDB 中是不可能的,真的很伤心
  • 2) 我会尝试这条路径,我猜一种方法是做一些作业或触发器,如果​​ DB 允许这种类型的连接,则将数据发送到上游(到 AzureSQL)。
  • 3) 由于技术债务(大部分都在我们没有那么多权限的云服务器上)想避免更多的外部工具,以及到处乱跑的服务器。无论如何,任何推荐工具或方法?,可以在 bash 中完成并使用 cron 编程的东西?
  • 就其价值和尊重而言,bash 中的 ETL 程序正是技术债务的定义。不过,请看我的编辑。
  • 4) 我可以给你一个超级加分!非常感谢这些工具!任务完成!!!非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2017-03-08
  • 2015-09-16
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多