【问题标题】:sqlbox looking for mysql instead of mssqlsqlbox 寻找 mysql 而不是 mssql
【发布时间】:2017-10-13 17:50:43
【问题描述】:

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

sqlbox -v 0 /etc/kannel/sqlbox.conf

以下是日志:

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]

我不知道为什么显示为 Compiled with PostgreSQL 9.5.2.,我以前没用过,我如何只用 mysql 重新编译&这里是 sqlbox 配置:

#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

有什么想法吗?

【问题讨论】:

  • 您好,我遇到了与您和stackoverflow.com/q/45486238/4885217 相同的问题。你处理了吗?
  • 我仍然遇到同样的问题,没有任何回应!
  • 你是重新编译了kannel和sqlbox还是直接使用了预编译好的包?几个月前我遇到了同样的问题

标签: ubuntu-16.04 kannel


【解决方案1】:

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

问题

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

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”的地方:

sudo find / -name "*kannel*"
sudo find / -name "*Kannel*"

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

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-xml)库”)

  • sudo apt-get install libmysqlclient-dev./configure --with-mysql 需要)

  • sudo apt-get install bisonmake 需要)

  • sudo apt-get install libssh-dev libssl-devmake 需要以避免出现此错误:“collect2: error: ld returned 1 exit status make: *** [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 文档中所述,运行:

cd trunk
./bootstrap
./configure --with-mysql --with-mysql-dir=/var/lib/mysql
make

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

然后安装:

sudo make bindir=/usr/local/kannel install

运行通道

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

cd /usr/local/sbin
./bearerbox -v 0 /etc/kannel/kannel.conf

第 3 步 - 从源安装最新的 Kannel-sqlbox 版本

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

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

cd addons/sqlbox

补丁引导文件

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

更改以下值以匹配您的机器版本的 autoconf: 如果 automake-1.11 --version >/dev/null 2>&1;然后 amvers="-1.11"

所以对我来说它变成了: 如果 automake-1.15 --version >/dev/null 2>&1;然后 amvers="-1.15"

构建和安装 sqlbox

./bootstrap
./configure
make
sudo make install

我们完成了!

还有一点:如果想在Kannel启动时添加Sqlbox启动:

sudo gedit /etc/default/kannel
Add "START_SQLBOX=1" line at the end

【讨论】:

  • 我按照以上几点,一步一步安装kannel和sql-box。当我到达最后一点 cd /usr/local/sbin ./bearerbox -v 0 /etc/kannel/kannel.conf 我得到以下 root@smpp:/usr/local/sbin# ./bearerbox -v 0 /etc/kannel/kannel.conf ./bearerbox:加载共享库时出错:libgwlib.so.0:无法打开共享对象文件:没有这样的文件或目录 root@smpp:/usr/local/sbin# 有什么想法吗?
猜你喜欢
  • 2018-01-11
  • 2019-06-28
  • 1970-01-01
  • 2015-05-25
  • 2019-09-10
  • 2013-01-22
  • 2022-01-18
  • 2010-09-22
  • 2023-03-08
相关资源
最近更新 更多