首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlbox寻找mysql而不是mssql

sqlbox寻找mysql而不是mssql
EN

Stack Overflow用户
提问于 2017-08-31 11:44:43
回答 1查看 912关注 0票数 3

我试图启动sqlbox,但它惊慌失措,我跑了:

代码语言:javascript
复制
sqlbox -v 0 /etc/kannel/sqlbox.conf

以下是日志:

代码语言:javascript
复制
2017-08-31 13:27:56 [18635] [0] INFO: Debug_lvl = 0, log_file = <none>, log_lvl = 0
2017-08-31 13:27:56 [18635] [0] DEBUG: Kannel sqlbox version `1.4.4'.
Build `Apr  5 2016 13:32:05', compiler `5.3.1 20160330'.
System Linux, release 4.4.0-93-generic, version #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017, machine x86_64.
Hostname smpp.bothsmsw.com, IP 127.0.0.1.
Libxml version 2.9.3.
Using OpenSSL 1.0.2g  1 Mar 2016.
Compiled with MySQL 5.7.11, using MySQL 5.7.19.
Compiled with PostgreSQL 9.5.2.
Using SQLite 3.11.0.
Using hiredis API 0.13.3
Using native malloc.

2017-08-31 13:27:56 [18635] [0] INFO: Starting to log to file /var/log/kannel/sqlbox.log level 0
2017-08-31 13:27:56 [18635] [0] INFO: Added logfile `/var/log/kannel/sqlbox.log' with level `0'.
2017-08-31 13:27:56 [18635] [0] PANIC: SQLBOX: MSSql: connection settings for id 'sqlbox-db' are not specified!
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(gw_backtrace+0xce) [0x42d07e]
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(gw_panic+0x16f) [0x42d1ff]
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(sqlbox_init_mssql+0x11e) [0x40dffe]
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(sqlbox_init_sql+0x9) [0x413239]
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(main+0x31d) [0x40c24d]
2017-08-31 13:27:56 [18635] [0] PANIC: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f3146101830]
2017-08-31 13:27:56 [18635] [0] PANIC: sqlbox(_start+0x29) [0x40c4d9]

我不知道为什么看起来像用PostgreSQL 9.5.2编译的那样。我以前不使用它,我只能用mysql重新编译&下面是sqlbox配置:

代码语言:javascript
复制
#SQLBOX
group = sqlbox
id = sqlbox-db
smsbox-id = sqlbox
bearerbox-host = localhost
bearerbox-port = 18001
smsbox-port = 18005
smsbox-port-ssl = false
sql-log-table = sent_sms
sql-insert-table = send_sms
log-level = 0
log-file = /var/log/kannel/sqlbox.log

# SQLBOX SETUP
group = mysql-connection
id = sqlbox-db
host = localhost
port = 3306
username = root
password = pass
database = kannel_db
max-connections = 25

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-13 09:50:43

正如在本主题Kannel Sqlbox not working (trying to connect to SQL Server instead of MySQL)?中回答的那样,您不能使用apt包,因为它们不是用正确的参数构建的。

问题

日志中描述的主要问题是:

2017-08-31 13:27:56 [18635] [0] PANIC: SQLBOX: MSSql: connection settings for id 'sqlbox-db' are not specified!

事实上,在您使用的版本中有一个问题(apt-get包是旧版本,您不能在那里使用),我在年初遇到了同样的问题。

我就是这么做的。

解决方案

步骤1-卸载所有以前的Kannel包,清理所有东西。

如果您已经安装了带有apt-get软件包的Kannel,您必须首先清理您的机器。

这里有一些线索,可以找到你必须移除的物品。我首先检查了发现"kannel“的每一个地方:

代码语言:javascript
复制
sudo find / -name "*kannel*"
sudo find / -name "*Kannel*"

然后,我运行了以下命令(根据设置等,其中一些命令可能对您没有用处):

代码语言:javascript
复制
sudo apt-get autoremove --purge kannel
sudo rm -rf /etc/kannel/
sudo apt-get autoremove --purge kannel-sqlbox
sudo rm /var/cache/apt/archives/kannel-sqlbox_0.7.2-4build1_amd64.deb
sudo rm /var/cache/apt/archives/kannel-extras_1.4.4-2build1_amd64.deb
rm /home/nico/www-dev/kannelStore/kannel.store*
sudo rm -rf /usr/local/include/kannel
sudo rm -rf /usr/local/kannel
sudo rm -rf /usr/local/lib/kannel
rm /var/tmp/kannel.swp
sudo rm /usr/local/share/man/man8/kannel.8
sudo rm /usr/local/share/man/man8/run_kannel_box.8

还有sudo rm -rf /usr/local/sbin/ (但是这里要小心,这取决于您在文件夹中已经拥有了什么!)

步骤2-从源代码安装最新的Kannel版本

注意:您必须使用1.5.0版本

获取依赖关系

首先,添加未来命令所需的所有包:

  • sudo apt-get install libxml2-dev (步骤./configure所需,否则您将得到“配置:错误:您必须安装libxml2 (又名gnome)库”))
  • sudo apt-get install libmysqlclient-dev (./configure --with-mysql所需)
  • sudo apt-get install bison (make所需)
  • sudo apt-get install libssh-dev libssl-dev ( make需要避免此错误:"collect2: error: ld返回一个退出状态:* test/test_http Error 1 ")

获取Kannel源

您必须从svn存储库中获取源代码。所以:

  • sudo apt install subversion如果您还没有subversion (您可以通过运行svn --version来检查:如果没有回复,请使用命令)

然后:

  • 转到本地托管源的文件夹。例如,在m端:cd ~/www-dev/nicopushkannel/Kannel/Kannel-Source
  • 从存储库获取Kannel源:svn co https://svn.kannel.org/gateway/trunk

构建和安装Kannel

从上一步开始,您应该在Kannel源根目录上查找。如Kannel文档所述,运行:

代码语言:javascript
复制
cd trunk
./bootstrap
./configure --with-mysql --with-mysql-dir=/var/lib/mysql
make

这里,重要的事情是添加到./ --with-mysql --with-mysql-dir=/var/lib/mysql中的参数:

然后安装:

代码语言:javascript
复制
sudo make bindir=/usr/local/kannel install

运行Kannel

完成之后,您可以尝试从命令行运行Kannel:

代码语言:javascript
复制
cd /usr/local/sbin
./bearerbox -v 0 /etc/kannel/kannel.conf

步骤3-从源代码安装最新的Kannel-sqlbox版本

注意:您需要安装Kannel (步骤2)来编译sqlbox。

sqlbox包含在Kannel主干中:导航到文件夹:

代码语言:javascript
复制
cd addons/sqlbox

补丁引导文件

您可能必须修补引导文件以匹配您的autoconf版本(对我来说是1.15 ),因为代码不知道1.15大于1.11.

更改以下值以匹配您的计算机版本的autoconf:如果自动-1.11- version >/dev/null 2>&1;那么amvers="-1.11“

所以对我来说,它变成了:如果自动-1.15-版本>/dev/null 2>&1;那么amvers="-1.15“

构建和安装sqlbox

代码语言:javascript
复制
./bootstrap
./configure
make
sudo make install

我们完蛋了!

还有一件事:如果您想在Kannel启动时添加Sqlbox启动:

代码语言:javascript
复制
sudo gedit /etc/default/kannel
Add "START_SQLBOX=1" line at the end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45980691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档