sqlbox寻找mysql而不是mssql

时间:2017-08-31 11:44:44

标签: ubuntu-16.04 kannel

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

private void btn_Create_Click(object sender, EventArgs e)
      {
          try
          {
              //// Get an instance of the currently running Visual Studio IDE.
              System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.12.0");
              Object obj = System.Activator.CreateInstance(type, true);
              EnvDTE.DTE dte = (EnvDTE.DTE)obj;
              dte.MainWindow.Visible = true; // optional if you want to See VS doing its thing

              // create a new solution
              dte.Solution.Create(@"C:\NewSolution\", "NewSolution");
              var solution = dte.Solution;

              // create a C# WinForms app
              solution.AddFromTemplate(@"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows\1033\WindowsApplication\csWindowsApplication.vstemplate",
                  @"C:\NewSolution\WinFormsApp", "WinFormsApp");

              // create a C# class library
              solution.AddFromTemplate(@"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows\1033\ClassLibrary\csClassLibrary.vstemplate",
                  @"C:\NewSolution\ClassLibrary", "ClassLibrary");

              // save and quit
              dte.ExecuteCommand("File.SaveAll");
              dte.Quit();
          }
          catch (Exception ex)
          {
              throw;
          }
      }  

以下是日志:

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

我不知道为什么会出现与PostgreSQL 9.5.2一起编译。我以前不会使用它,如何只使用mysql重新编译&这是sqlbox配置:

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]

有什么想法吗?

1 个答案:

答案 0 :(得分: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需要,或者您将获得“configure:error:您必须安装libxml2(aka gnome-xml)库”)

    < / LI>
  • 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返回1退出状态make:*** [test / test_http]错误1”)< / p>

获取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

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

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

步骤3 - 从源

安装最新的Kannel-sqlbox版本

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

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

cd addons/sqlbox

修补程序引导程序文件

你可能需要修补bootstrap文件以匹配你的autoconf版本(对我来说是1.15),因为代码不明白1.15是&gt;比1.11 ......

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

所以对我来说它变成了:     如果automake-1.15 --version&gt; / dev / null 2&gt;&amp; 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