AWS EC2 linux + PHP + ODBC + 远程 MS SQL 服务器

AWS EC2 linux + PHP + ODBC + Remote MS SQL Server

我正在使用 AWS EC2 服务器(使用 php)开发 Web 应用程序以访问 MS SQL 服务器数据库。

经过长时间搜索解决方案后,我发现此解决方案使用 ODBC 驱动程序。很好,开发很顺利,连接数据库或持久化数据都没有问题。

但是当我部署我的应用程序时,任何操作 returns 这个错误:

ERRO: IM001: [unixODBC][Driver Manager]Driver does not support this function

我真的尝试了所有我知道的,但无法解决这个问题。

我的 EC2 配置是:

yum install unixODBC unixODBC-devel freetds freetds-devel

我的 odbc/freetds 配置文件是:

/etc/odbc.ini

[TDS_NAME]
      Description = decription
      Driver = TDS_NAME
      Database = MY_DB
      Servername = TDS_NAME
      UID = VIPS
      Port = 1433
      TDS_Version= 7.3

/etc/odbcinst.ini

[TDS_NAME]
      Description = TDS Connection
      Driver64 = /usr/lib64/libtdsodbc.so
      Setup64 = /usr/lib64/libtdsS.so
      FileUsage = 1
      UsageCount = 1
[ODBC]
      Trace = yes
      TraceFile /tmp/odbc.log

/etc/freetds.conf

[TDS_NAME]
      host = MY_HOST
      port = MY_PORT
      tds version = 7.3

我 运行 我的查询使用 odbc_execute() 或 odbc_exec() 并且当我的咨询有一些参数时发生错误。我很确定问题不是我的配置文件,因为我可以成功连接到服务器并且 运行 一个简单的 "SELECT * FROM table" 并使用 isql 连接 运行 任何查询都很顺利。

谁能帮帮我?

OBS:PHP 运行 版本 - PHP 5.6.10

需要考虑的几件事:

  • 你是什么版本的 FreeTDS 运行?
  • 你SQL服务器是什么版本运行?

您需要它来正确选择正确的 TDS 版本。您配置为使用 TDS 7.3,这将需要 FreeTDS 0.95 和 SQL Server 2008。如果您只是在做一些基本的事情,也许考虑将您的 TDS 版本更改为 7.2 或 7.1?

这是一张方便的图表,显示了 FreeTDS 中的哪个 TDS 版本支持哪些功能:

http://www.freetds.org/userguide/choosingtdsprotocol.htm

祝你好运!