我尝试使用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
- >在
import MySQL
中添加Perfect/Examples/URL Routing/URL Routing/PerfectHandlers.swift
- >然后我在执行
error: no such module 'MySQL'
时得到make
命令。
任何人都知道如何使用Perfect提供的连接器?
我是斯威夫特的新人,也许这个问题对熟悉斯威夫特的人来说有点愚蠢。
答案 0 :(得分: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