首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server到MySQL同步,在10.9上使用工作台、FreeTDS和iODBC

Server到MySQL同步,在10.9上使用工作台、FreeTDS和iODBC
EN

Database Administration用户
提问于 2014-01-14 20:54:28
回答 1查看 5K关注 0票数 0

我一直在努力让MySQL工作台正常运行,以完成以下操作:

使用小牛(OSX10.9),连接到server并创建到MySQL服务器的迁移作业。

主要问题似乎是ODBC驱动程序。iODBC被弃用10.8,头文件在10.9中删除完成(关于这个这里的一些讨论)。更深入的讨论这里)。

尽管我尽了最大的努力,但当我尝试在本地子网上测试与Server的连接时,这是我在Workbench中得到的最远的一次:

ODBC管理器找不到为源连接选择的ODBC驱动程序。确保安装了正确的ODBC驱动程序并重试。错误文本:错误(“(‘00000’,'00000司机经理dlopen({FreeTDS},6):图像未找到(0) (SQLDriverConnect)”):调用DbMssqlRE.connect模块函数时出错

以下是我到目前为止所做的工作:

  • 从他们的站点安装FreeTDS .92.XX ( FreeTDS的自制安装是不可接受的,因为它使用.91。显然,.92或更高版本是必需的,根据我一直在MySQL上跟踪的文档,定位为这里
  • 安装了我能在iodbc.org上找到的最新的iodbc.org文件(从10.6开始就被遗忘了)
  • 使用自制,安装了unixODBC,以防万一提供了一些替代方案,这似乎也没有任何用处,
  • 安装ODBC管理员应用程序,V1.1.0来自Apple

是否有人使用MacOS10.9上的Workbench作为源成功连接到Server数据库?

即将放弃并选择Windows应用程序,因为这种iODBC的东西变得相当令人沮丧的5+小时内:

编辑

似乎PuTTY正在显示简单的telnet和端口3606和22上的ssh命令也不被接受。

据我所知,防火墙在Windows上是完全开放的。私有、公共和公司设置允许所有入站和出站通信量。

根用户和具有通配符主机的用户也无法工作:-/

EN

回答 1

Database Administration用户

发布于 2015-03-26 21:08:25

试图解决同样的问题却在这里绊倒了..。已经晚了一年,但迟了总比不来好.

OSX使用iODBC作为ODBC层,因此FreeTDS必须针对iODBC编译,以便MySQL工作台进行连接。

由于我也与iODBC做过斗争,我最终所做的就是创建一个自定义的“库安装”来运行它。

步骤如下:

  1. 确保安装了XCode和命令行开发实用程序。你会编译很多东西!
  2. 下载并编译iODBC (我使用了来自www.iodbc.org的3.52 )。例如,确保安装在“孤立”的某个地方--前缀=/usr/local/iodbc;
  3. 下载并编译FreeTDS:
    • 光盘到freetds源目录;
    • export CFLAGS="-arch i386"
    • export LDFLAGS="-arch i386"型;
    • 使用./configure --prefix=/usr/local/freetds --with-iodbc=<path_to_iodbc_in_step_1> --enable-odbc-wide运行配置
    • (MySQL工作台需要32位结构;exports将确保这一点,因为小牛--我的OSX --是64位。)

  4. 从苹果下载并安装ODBC管理员(https://support.apple.com/kb/DL895?locale=en_是 -Version1.0为我工作);
  5. 运行ODBC管理,转到“驱动程序”选项卡,并创建一个"TDS“驱动程序;将”驱动程序文件“指向/usr/local/freetds/lib/libtdsodbc.so (步骤3之后应该在那里!)
  6. 转到MySQL工作台迁移工具并选择作为连接方法"ODBC (FreeTDS)“。在“驱动程序”中,键入您在步骤5中使用的名称("TDS"),并根据需要填写其他信息。
  7. “测试连接”,在继续之前喝一杯你最喜欢的饮料!:)

一个工作日的“投入”,但确实奏效了。

更新

喝完咖啡后,我继续进行测试迁移,结果发现我的Server连接实际上没有连接(正确的用户,正确的密码)。另一个上午的工作--以下是调整:

  1. 确保将iODBC编译成32位的体系结构。要做到这一点:
    • 使用您在编译export时使用的相同的FreeTDS (CFLAGS,LDFLAGS);
    • 使用--prefix=/usr/local/iODBC32。请确保编译到不同的目录,否则可能会中断当前ODBC安装。

  2. 确保编译您的“32位”FreeTDS版本,指向“右”iODBC和:。
    • ./configure --with-iodbc=/usr/local/iODBC32

这应该能起作用。

另一条建议是:

MySQL迁移将使用exec sys.sp_databases来获取有关要迁移的模式的信息。如果您没有使用sa进行迁移(您可能不应该这么做!),请确保您的登录在主数据库上拥有足够的权限(我自己创建了一个sa的“临时”克隆以进行迁移);否则,MySQL迁移将难以获取和复制。

所有这些之后,我终于完成了一个成功的迁移(较小的可管理的排序问题)。

希望这能帮上忙

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/56782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档