【问题标题】:Using MySQL connector in Perfect framework在 Perfect 框架中使用 MySQL 连接器
【发布时间】:2016-01-06 09:43:00
【问题描述】:
我正在尝试使用 ubuntu 下 Perfect 中的 MySQL 连接器连接到我的 MySQL 数据库。
我已成功创建 MySQL.so 文件,但不知道接下来要做什么,以便我可以 import MySQL 并像 MySQLTests.swift 中的代码一样连接到 MySQL 数据库。
这是我尝试过的
将MySQL.so复制到Perfect/PerfectServer/PerfectLibraries/ ->
添加-I $(PERFECT_ROOT)/PerfectServer/PerfectLibraries
makefile 下 /Perfect/Examples/URL Routing ->
在Perfect/Examples/URL Routing/URL
Routing/PerfectHandlers.swift 中添加import MySQL ->
然后我在执行make时得到error: no such module 'MySQL'
命令。
有人知道如何使用 Perfect 提供的连接器吗?
我是 swift 新手,也许这个问题对于熟悉 swift 的人来说有点愚蠢。
【问题讨论】:
标签:
mysql
linux
swift
ubuntu
perfect
【解决方案1】:
您需要从系统库路径加载MySQL.so 库。
我刚刚为 MongoDB 连接器完成了此操作,还没有为 MySQL 测试它,但我尝试为您重现它。
按照这些步骤应该可以帮助您:
确保你已经安装了 libmysqlclient-dev。
sudo apt-get install libmysqlclient-dev
cd 进入你的 MySQL 项目目录并构建它
cd /path/to/myPerfectProject/MySQL
make
使二进制文件可用于您的项目:
ln -sf `pwd`/MySQL.so /usr/local/lib/
ln -sf `pwd`/MySQL.swiftmodule /usr/local/lib/
ln -sf `pwd`/MySQL.swiftdoc /usr/local/lib/
确保您的库路径可用于make:
sudo echo /usr/local/lib >> /etc/ld.so.conf
sudo ldconfig
像这样更新项目的 makefile:(注意 MySQL 链接)
MYSQL_ROOT=/path/to/mysql
SWIFTC_FLAGS = -frontend -c -module-cache-path $(MODULE_CACHE_PATH) -emit-module -I /usr/local/lib -I $(PERFECT_ROOT)/linked/LibEvent \
-I $(PERFECT_ROOT)/linked/OpenSSL_Linux -I $(PERFECT_ROOT)/linked/ICU -I $(PERFECT_ROOT)/linked/SQLite3 -I $(PERFECT_ROOT)/linked/LinuxBridge -I $(PERFECT_ROOT)/linked/cURL_Linux -I $(MYSQL_ROOT)/linked/libmysqlclient
LFLAGS = $(SHLIB_PATH) -luuid -lswiftCore -lswiftGlibc /usr/local/lib/MySQL.so /usr/local/lib/PerfectLib.so -Xlinker -rpath -Xlinker $($(OS)_SHLIB_PATH) -shared
构建你的项目
cd /path/to/myPerfectProject/
make