首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tiny_TDS在rails中连接到SQL-Azure:[错误]分段错误

使用tiny_TDS在rails中连接到SQL-Azure:[错误]分段错误
EN

Stack Overflow用户
提问于 2012-07-24 22:11:40
回答 2查看 1.4K关注 0票数 1

我们试图让rails与Azure上的sqlserver db对话,我们安装了freeTDS和openssl和libiconv:

代码语言:javascript
复制
./configure --prefix=/usr/local --with-libiconv-prefix=DIR --with-openssl=DIR
make
make install

然后,我们将tiny_TDS和activerecord-sqlserver-adapter添加到gemfile:

代码语言:javascript
复制
gem 'tiny_tds'
gem 'activerecord-sqlserver-adapter'

$ bundle install

配置数据库:

代码语言:javascript
复制
development:  
  adapter: sqlserver
  host: xxxxxxx.database.windows.net
  mode: DBLIB
  port: 1433
  database: xxxxx
  username: xxxxxxxx
  password: x
  azure: true

运行服务器:

代码语言:javascript
复制
$ rails s

到目前为止一切都很好,但是一旦你访问这个网站,ruby就会崩溃。

代码语言:javascript
复制
steven@jenny:~/irr$ rails server -p 3001
=> Booting WEBrick
=> Rails 3.0.4 application starting in development on http://0.0.0.0:3001
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-07-24 15:37:00] INFO  WEBrick 1.3.1
[2012-07-24 15:37:00] INFO  ruby 1.9.2 (2012-02-14) [x86_64-linux]
[2012-07-24 15:37:00] INFO  WEBrick::HTTPServer#start: pid=7586 port=3001
/home/steven/.rvm/gems/ruby-1.9.2-p318/gems/tiny_tds-0.5.1/lib/tiny_tds/client.rb:68: [BUG] Segmentation fault
ruby 1.9.2p318 (2012-02-14 revision 34678) [x86_64-linux]

-- control frame ----------
c:0048 p:---- s:0232 b:0232 l:000231 d:000231 CFUNC  :connect
c:0047 p:0429 s:0228 b:0228 l:000227 d:000227 METHOD /home/steven/.rvm/gems/ruby-1.9.2-p318/gems/tiny_tds-0.5.1/lib/tiny_tds/client.rb:68

我们已经尝试了几个版本的ruby: 1.9.2-p318,1.9.2-p320,1.9.3-p125。所有的错误都是一样的。

这是在使用rvm和FreeTDS-0.9.1的ubuntu 11.10上。

对解决方法有什么想法吗?

我是不是在这个过程中犯了一个错误?

编辑

IRB的输出:

代码语言:javascript
复制
require 'tiny_tds'
client = TinyTds::Client.new(:username =>'XXXXX@XXXXXXX.database.windows.net', :password => 'XXXXXXX', :host => 'XXXXXX.database.windows.net',  :mode => 'DBLIB', :azure => 'true')
SystemStackError: stack level too deep from /home/martinr/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/irb/workspace.rb:80
Maybe IRB bug!!

它似乎是ruby本身的一个bug:

代码语言:javascript
复制
/home/martinr/.rvm/gems/ruby-1.9.2-p320/gems/tiny_tds-0.5.1/lib/tiny_tds/client.rb:68: [BUG] Segmentation fault (core dumped)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-30 19:49:05

该错误似乎是由用户名为username@servername引起的

删除@severname部件后,ruby不再崩溃

票数 1
EN

Stack Overflow用户

发布于 2012-07-25 19:49:06

你应该只做一个简单的IRB提示符,然后像TinyTDS上提到的read me那样做。

require 'tiny_tds' client = TinyTds::Client.new(...)

填写您的连接参数。像用户名、密码和主机这样简单的东西。让我知道事情进展如何。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11632743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档