mysql - 在 Perfect 框架中使用 MySQL 连接器

标签 mysql linux swift ubuntu perfect

我正在尝试使用 ubuntu 下 Perfect 中的 MySQL 连接器连接到我的 MySQL 数据库。

我已经成功创建了 MySQL.so 文件,但不确定下一步该怎么做才能像 MySQLTests.swift 中的代码那样导入 MySQL 并连接到 MySQL 数据库.

这是我试过的

Copying MySQL.so to Perfect/PerfectServer/PerfectLibraries/ ->

Adding -I $(PERFECT_ROOT)/PerfectServer/PerfectLibraries in makefile under /Perfect/Examples/URL Routing ->

Adding import MySQL in Perfect/Examples/URL Routing/URL Routing/PerfectHandlers.swift ->

Then I got error: no such module 'MySQL' when executing make command.

有人知道如何使用完美提供的连接器吗?

我是 swift 的新手,也许这个问题对于熟悉 swift 的人来说有点愚蠢。

最佳答案

您需要从系统库路径加载MySQL.so 库。 我刚刚为 MongoDB 连接器做了这个,还没有为 MySQL 测试它,但我试着为你重现它。

遵循这些步骤应该可以帮助您:

Ensure that you have installed libmysqlclient-dev.

sudo apt-get install libmysqlclient-dev

cd into your MySQL project dir and build it

cd /path/to/myPerfectProject/MySQL

make

Make the binaries available to your project:

ln -sf `pwd`/MySQL.so /usr/local/lib/
ln -sf `pwd`/MySQL.swiftmodule /usr/local/lib/
ln -sf `pwd`/MySQL.swiftdoc /usr/local/lib/

Ensure your libraries path is availbale to make:

sudo echo /usr/local/lib >> /etc/ld.so.conf
sudo ldconfig

Update the makefile of your project like this: (notice the MySQL linkings)

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

Build your project

cd /path/to/myPerfectProject/

make

关于mysql - 在 Perfect 框架中使用 MySQL 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629892/

相关文章:

mysql - 不使用 Taps 从 Heroku 提取数据的更快方法......第二部分

php - 如何在mysql中获取逗号分隔的id的名称?

linux - 如何在 Linux x86_64 系统上获取 VDSO 的大小

swift - 我怎样才能使我的 UIView 在没有自动布局的情况下始终与屏幕右侧齐平?

Swift AVAssetWriter 将带有麦克风音频和设备音频的视频录制成带有 ONE 音轨 AVAssetTrack 的视频

Double 和 Float64 之间的 Swift 区别

php - MySQL 数据库继承时没有在一个表中进行规范化,但我需要对其进行查询

mysql - 组中 where 子句中的最小值使用 Row_Number() 而非 order by

Linux - 远程命令执行和 .bashrc

linux - bash 脚本从文件中获取所花费的时间