openwrt之mariadb odbc

openwrt中已经有unixODBC 和 mariadb模块,但是19.07.04版本没有mariadb-odbc驱动,所以还不能透过odbc操作mariadb和mysql数据库。

  • 在feeds/packages/libs,添加libmaodbc目录,并创建Makefile
eric@eric-PC:~/Documents/work/openwrt_1907/feeds/packages/libs/libmaodbc$ ls
Makefile

Makefile:

#
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

# # https://archive.mariadb.org//connector-odbc-3.0.2/mariadb-connector-odbc-3.0.2-ga-src.tar.gz

include $(TOPDIR)/rules.mk

PKG_NAME:=libmaodbc
PKG_VERSION:=3.0.2
PKG_RELEASE:=1

PKG_SOURCE:=mariadb-connector-odbc-$(PKG_VERSION)-ga-src.tar.gz
PKG_SOURCE_URL:=https://archive.mariadb.org//connector-odbc-$(PKG_VERSION)/
PKG_HASH:=eba4fbda21ae9d50c94d2cd152f0ec14dde3989522f41ef7d22aa0948882ff93
PKG_BUILD_DIR:=$(BUILD_DIR)/mariadb-connector-odbc-$(PKG_VERSION)-ga-src

PKG_MAINTAINER:=
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=license.txt

PKG_BUILD_DEPENDS:=unixodbc/host
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

define Package/$(PKG_NAME)/Default
  SUBMENU:=Database
  SECTION:=libs
  CATEGORY:=Libraries
  URL:=https://mariadb.org/
  TITLE:=mariadb driver for ODBC
  DEPENDS:=+unixodbc +libmariadb
endef

define Package/$(PKG_NAME)
$(call Package/$(PKG_NAME)/Default)
  TITLE:=MariaDB oddbc library
  MENU:=1
  PROVIDES:=libmaodbc
endef

define Package/$(PKG_NAME)/description
    MariaDB ODBC Driver.
    It is released under the Library General Public Licence, or LGPL.
endef

CMAKE_OPTIONS += -DMARIADB_INCLUDE_DIR=$(BUILD_DIR)/mariadb-connector-c-3.1.10-src/include
CMAKE_OPTIONS += -DMARIADB_LIBRARY_DIR=$(BUILD_DIR)/mariadb-connector-c-3.1.10-src/libmariadb
# cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo 
# -DCONC_WITH_UNIT_TESTS=Off -DCONC_WITH_MSI=OFF -DCMAKE_INSTALL_PREFIX=/usr/local .
CMAKE_OPTIONS += -DCONC_WITH_UNIT_TESTS=Off \
		-DCONC_WITH_MSI=OFF \
		-DCMAKE_INSTALL_PREFIX=/usr


define Package/$(PKG_NAME)/install
  $(INSTALL_DIR) $(1)/usr/lib
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libmaodbc.so $(1)/usr/lib
endef

$(eval $(call BuildPackage,$(PKG_NAME)))

  • 更新链接文件(re-create index files, install symlinks)
./scripts/feeds update -i
./scripts/feeds install -a
  • 进入menuconfig,查看刚添加的libmaodbc目录
 .config - OpenWrt Configuration                                                        
 > Libraries > Database ─────────────────────────────────────────────────────────────── 
  ┌─────────────────────────────────── Database ────────────────────────────────────┐   
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty         │   
  │  submenus ----).  Highlighted letters are hotkeys.  Pressing <Y> includes, <N>  │   
  │  excludes, <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help,   │   
  │  </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module    │   
  │ ┌─────────────────────────────────────────────────────────────────────────────┐ │   
  │ │    <*> libmaodbc.......................................... MariaDB oddbc lib│ │   
  │ │    -*- libmariadb............................... MariaDB database client lib│ │   
  │ │    < > libpq.......................................... PostgreSQL client lib│ │   
  │ │    < > libpqxx........................ PostgreSQL client library (C++ interf│ │   
  │ │    < > libsqlite3....................... SQLite (v3.x) database engine (libr│ │   
  │ │    < > pgsqlodbc..................................... Postgresql driver for │ │   
  │ │    < > psqlodbca...................... psqlODBC - PostgreSQL ODBC driver (AS│ │   
  │ │    < > psqlodbcw...................... psqlODBC - PostgreSQL ODBC driver (UT│ │   
  │ │    < > redis-cli...................................................... Redis│ │   
  │ │    < > redis-server................................................ Redis se│ │   
  │ │    < > redis-utils.............................................. Redis utili│ │   
  │ │    < > tdb..................................................... Trivial Data│ │   
  │ │    -*- unixodbc............................................ unixODBC (librar│ │   
  │ │                                                                             │ │   
  │ └─────────────────────────────────────────────────────────────────────────────┘ │   
  ├─────────────────────────────────────────────────────────────────────────────────┤   
  │            <Select>    < Exit >    < Help >    < Save >    < Load >             │   
  └─────────────────────────────────────────────────────────────────────────────────┘   
  • make,生成对应的libmaodbc.so
eric@eric-PC:~/Documents/work/openwrt_1907/build_dir/target-mipsel_24kc_musl/mariadb-connector-odbc-3.0.2-ga-src/ipkg-install$ tree
.
└── usr
    ├── lib
    │   └── libmaodbc.so
    └── share
        └── doc
            └── mariadb_connector_odbc
                ├── COPYING
                └── README

5 directories, 3 files
  • 进入openwrt系统,设置配置文件如下:
root@Openwrt:/etc# cat odbcinst.ini
[ODBC]
Trace = off
TraceFile =


[mariadb]
Driver=/usr/lib/libmaodbc.so
Setup=/usr/lib/libmaodbc.so
UsageCount=1


root@Openwrt:/etc# cat odbc.ini
[mariadb]
Description = The Database for mariadb
Trace = On
TraceFile = stderr
Driver = mariadb
SERVER = 192.168.16.101
USER = root
PASSWORD = 1234
PORT = 3306
DATABASE = test
charset = UTF8
ioption = 3


  • 用测试程序main,测试连接服务端192.168.16.101地址的数据库
root@Openwrt:/# ./main
[main](49)start...
[unixodbc_test](340)
[connect_database](192) Database Connected !
[OD_ListDSN](214)
[query_database](224)
[query_database](227)
[query_database](236)
[query_database](264) Number of Columns 3
[query_database](278) Number of Rows 2
[query_database](282) Result: haha 1
[query_database](282) Result: xixi 2
[close_database](204)
^C

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWRT是一种基于Linux的开源嵌入式操作系统,常用于路由器等网络设备中。TR069是一种用于远程管理和配置设备的协议。在OpenWRT中,CPE(Customer Premises Equipment)和ACS(Auto Configuration Server)之间的通信是通过TR069协议实现的。 CPE与ACS之间的通信需要进行认证,其中包括Digest认证过程。在这个过程中,CPE和ACS之间首先建立一个非加密的连接,然后可以选择使用https来进行加密通信。为了使用https,需要生成一个证书。在OpenWRT中,可以使用openssl来生成证书,具体的步骤如下: 1. 执行以下命令生成私钥文件key.pem: ``` openssl genrsa 1024 > key.pem ``` 2. 执行以下命令生成证书文件cert.pem: ``` openssl req -new -x509 -key key.pem > cert.pem ``` 这样,就生成了一个用于https通信的证书。接下来,CPE和ACS就可以通过TR069协议进行通信,实现远程管理和配置设备的功能。在选择ACS时,可以考虑使用GenieACS,因为它是一个开源的ACS,目前仍在维护,并且有全面的文档支持。 请注意,以上提到的是OpenWRT中使用TR069协议进行CPE与ACS之间通信的基本步骤和一些选项,具体的配置和细节可能会根据具体情况有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [TR069之CPE与ACS的Digest验证](https://blog.csdn.net/zzj000/article/details/80182992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值