我下载了 Karl Kraft 的 MySQL 源代码和库,并为 iOS 6 构建了一个 mysql 客户端库。它第一次在本地 mysql 数据库上运行良好。甚至可以很好地处理 blob 数据。
下一步是移植到远程数据库。在下载了各种库并扯掉了我的头发后,我去寻找一个打包的解决方案。
我下载了 Chilkat 的 SSH Tunnel 库(30 天免费试用——149 美元——物有所值)。这也是第一次。在没有构建、没有链接、没有编译、没有为 i386 blah blah blah 找到符号的日子和发呆之后,这是一种乐趣!
好的,这是踢球者。我现在想使用远程数据库。当我在防火墙后面的数据库机器上通过 ssh 端口 22 将 3306 ssh 端口转发到 3306 时。现在我关掉mysqld,我的主机是localhost 3306端口。我的mysql有点小问题。
UNIX/MAC 机器上客户端的默认启动是在 localhost 上寻找套接字连接。
我收到以下错误:
错误:无法通过套接字“/tmp/mysql.sock”连接到本地 MySQL 服务器 (38)
我需要 mysql 的 TCP 协议启动选项。使用命令行,很容易 --protocol=TCP。
使用 iOS 客户端库,这并不明显。我进行了搜索,在 mysql.h 中我们有 mysql_protocol_type 和常量 MYSQL_PROTOCOL_DEFAULT、MYSQL_PROTOCOL_TCP 等。
我缺少的知识是如何在 Objective C 中以编程方式设置选项。
有一个服务器对象只定义了参数(服务器、名称、端口、用户名、密码),下一个对象是一个调用 mysql_init() 的连接对象。有没有人知道如何做到这一点?
顺便说一句:Karl Kraft 和 ChilKat 的那个人应该为后代保留他们的血液。他们为我节省了很多时间。
提前致谢。