Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在ruby配置中设置实例名数据库_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在ruby配置中设置实例名数据库

Ruby on rails 如何在ruby配置中设置实例名数据库,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的应用程序(RubyonRails)在linux中,我需要连接Sql Server数据库 在命令行中测试我得到: $tsql -LH 10.10.10.10 ServerName MYCOMPSRV10 InstanceName SQL2008R2 IsClustered No Version 10.50.4000.0 tcp 58891 我可以使用以下命令行访问数据库: $tsql -S 10.10.10.10\\SQL2008R2 -U userna

我的应用程序(RubyonRails)在linux中,我需要连接Sql Server数据库

在命令行中测试我得到:

$tsql -LH 10.10.10.10

  ServerName MYCOMPSRV10
InstanceName SQL2008R2
 IsClustered No
     Version 10.50.4000.0
         tcp 58891
我可以使用以下命令行访问数据库:

 $tsql -S 10.10.10.10\\SQL2008R2 -U username
因此,在我的Ruby on Rails应用程序中,我有database.yml和以下代码:

development:
  adapter: sqlserver
  host: 10.10.10.10
  database: MyDatabase
  username: username
  password: password
  port: 1433 
  pool: 5
  timeout: 5000 
但当我尝试运行应用程序时,我得到:

TinyTds::Error: Unable to connect: Adaptive Server is unavailable or does not exist
如果更改配置,请尝试添加数据库实例名称:

development:
  adapter: sqlserver
  host: '10.10.10.10\SQL2008R2'
  database: MyDatabase
  username: username
  password: password
  port: 1433 
  pool: 5
  timeout: 5000 
然后尝试运行应用程序:

TinyTds::Error: Server name not found in configuration files
我做了一项研究,没有发现如何解决这个问题。我甚至不知道如何设置数据库的实例名。 有人能帮我吗?

我找到了一个解决方案:

安装: unixodbc unixodbc料仓 unixodbc开发

  sudo apt-get install unixodbc unixodbc-bin unixodbc-dev
卸载 免费垃圾箱
freetds开发
freetds通用

sudo apt-get purge freetds-bin freetds-dev freetds-common
下载freetds当前版本并安装:

tar -xzf freetds-patched.tar.gz
cd freetds-1.00.15/
./configure
make
sudo make install
我通过以下查询发现了我的db实例的dinamic端口:

SELECT local_tcp_port
FROM   sys.dm_exec_connections
WHERE  session_id = @@SPID
并更改database.yml配置,将此端口改为默认1433

development:
  <<: *default
  host: 10.10.10.10
  username: myuser
  password: mypwd
  port: 58891
一切正常

我找到了一个解决方案:

安装: unixodbc unixodbc料仓 unixodbc开发

  sudo apt-get install unixodbc unixodbc-bin unixodbc-dev
卸载 免费垃圾箱
freetds开发
freetds通用

sudo apt-get purge freetds-bin freetds-dev freetds-common
下载freetds当前版本并安装:

tar -xzf freetds-patched.tar.gz
cd freetds-1.00.15/
./configure
make
sudo make install
我通过以下查询发现了我的db实例的dinamic端口:

SELECT local_tcp_port
FROM   sys.dm_exec_connections
WHERE  session_id = @@SPID
并更改database.yml配置,将此端口改为默认1433

development:
  <<: *default
  host: 10.10.10.10
  username: myuser
  password: mypwd
  port: 58891
一切正常