Sql server Can';t为CMS WebGUI创建数据库链接
我已经更新了整个场景(最后一个场景是i686和x64库之间的冲突) 现在我有了一个全新的CentOS 6.6 32位VPS,安装了unixODBC、FreeTDS和WebGUI 我可以通过isql和perl脚本与SQLServer2008完美连接 但我的目标是为WebGUI(一种基于perl的开源CMS)创建一个数据库链接Sql server Can';t为CMS WebGUI创建数据库链接,sql-server,linux,perl,freetds,unixodbc,Sql Server,Linux,Perl,Freetds,Unixodbc,我已经更新了整个场景(最后一个场景是i686和x64库之间的冲突) 现在我有了一个全新的CentOS 6.6 32位VPS,安装了unixODBC、FreeTDS和WebGUI 我可以通过isql和perl脚本与SQLServer2008完美连接 但我的目标是为WebGUI(一种基于perl的开源CMS)创建一个数据库链接 odbcinst-j的输出 unixODBC 2.3.4 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES
odbcinst-j的输出
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
/etc/odbcinst.ini
[FreeTDS]
Description=v0.95.73
Driver=/usr/lib/libtdsodbc.so.0.0.0
UsageCount=1
/etc/odbc.ini
[DSN]
Description=DNS description
Driver=FreeTDS
Server=XX.XX.XX.XX
Database=myDatabase
Port=1433 #sql server default port
TDS_Version=7.3
Trace=Yes
TraceFile=/tmp/sql.log
当我执行这个perl脚本时,它运行正常
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use DBD::ODBC;
my $dsn = "DBI:ODBC:DSN"; # Same DSN as above
my $db_user = "dbuser";
my $db_pass = 'dbpass';
my $dbh = DBI->connect($dsn, $db_user, $db_pass) or die "$DBI::errstr\n";
print "Connected\n";
my $query = "Select * from myTable";
my $sth = $dbh->prepare($query) or die "$DBI::errstr\n";
$sth->execute or die "$DBI::errstr\n";
# go do stuff!
# Close the database
$sth->finish;
$dbh->disconnect;
这是我试图添加到WebGUI的数据库链接
提交更改时,我在浏览器中遇到以下错误:
代理错误
代理服务器从上游服务器接收到无效响应。
代理服务器无法处理POST/home请求
原因:从远程服务器读取时出错
modproxy.error.log
[Wed Dec 23 14:15:42 2015] [error] [client IP] proxy: Error reading from remote server returned by /home, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:58 2015] [error] [client IP] (20014)Internal error: proxy: error reading status line from remote server 127.0.0.1:8081, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:58 2015] [error] [client IP] proxy: Error reading from remote server returned by /home, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:59 2015] [notice] child pid 7766 exit signal Segmentation fault (11)
modperl.error.log
[Wed Dec 23 14:15:42 2015] [error] [client IP] proxy: Error reading from remote server returned by /home, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:58 2015] [error] [client IP] (20014)Internal error: proxy: error reading status line from remote server 127.0.0.1:8081, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:58 2015] [error] [client IP] proxy: Error reading from remote server returned by /home, referer: http://VPSIP/home?op=editDatabaseLink;dlid=y2Yf1_oEJD6-Wm-T-yHy-w
[Wed Dec 23 14:15:59 2015] [notice] child pid 7766 exit signal Segmentation fault (11)
也许WebGUI试图从SQL Server而不是mysql加载/home?(我只想连接到SQL Server以获取一些产品,而不是其他产品)
任何帮助都将不胜感激
关于请尝试:导出LD_LIBRARY_PATH=/usr/local/lib
在odbc.ini
中,指定在odbcinst.ini
中定义的驱动程序
在odbc.ini中尝试以下操作:
[DSN]
Description=DNS description
Driver=FreeTDS
Server=XX.XX.XX.XX
Database=myDatabase
Port=1433 #sql server default port
TDS_Version=7.3
另外,请确保您使用的SQL Server版本和FreeTDS版本使用了正确的TDS版本。除非您需要7.3,否则我建议您坚持使用7.2:我在此repo中有示例odbc.ini
、odbcinst.ini
和freetds.conf
文件,如果它们有帮助:
祝你好运 好的,刚刚添加
use DBD::ODBC;
到文件SQL.pm,WebGUI能够识别unixODBC(以及FreeTDS)
圣诞快乐!!!:D