Инсталация на Redmine, не може да се свърже с SQL Server

Опитвам се да инсталирам redmine на сървър с SQL Server Express 2008 R2, имам инсталирани ruby ​​и rails, но попаднах в застой, когато се опитвах да създам db структурите, особено в тази стъпка:

rake db:migrate RAILS_ENV=production

rake aborted!
Unable to connect: Adaptive Server is unavailable or does not exist

Създаден db в SSMS с тази команда:

USE [master]
GO

-- Very basic DB creation
CREATE DATABASE [REDMINE]
GO

-- Creation of a login with SQL Server login/password authentication and no password expiration policy
CREATE LOGIN [REDMINE] WITH PASSWORD=N'redminepassword', DEFAULT_DATABASE=[REDMINE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

-- User creation using previously created login authentication
USE [REDMINE]
GO
CREATE USER [REDMINE] FOR LOGIN [REDMINE]
GO
-- User permissions set via roles
EXEC sp_addrolemember N'db_datareader', N'REDMINE'
GO
EXEC sp_addrolemember N'db_datawriter', N'REDMINE'
GO

Моят файл databse.yml е следният:

production:
  adapter: sqlserver
  database: REDMINE
  host: localhost
  username: REDMINE
  password: redminepassword

Имам база данни със съответното име и вход, някакви идеи какъв е проблемът?


person rickkr    schedule 28.05.2014    source източник
comment
сте инсталирали необходимите скъпоценни камъни? мисля, че имате нужда от tiny_tds и activerecord-sqlserver-adapter. Какво имате, ако изпълните bundle show activerecord-sqlserver-adapter?   -  person gotva    schedule 28.05.2014
comment
Имам tiny_tds-0.5.1-x86-mingw32 и activerecord-sqlserver-adapter-3.2.12   -  person rickkr    schedule 28.05.2014
comment
Може би TCP/IP портът не е активиран - blogs.microsoft.co.il/dbaces/2012/05/23/   -  person gotva    schedule 28.05.2014
comment
Вече направи и това. Ще актуализирам въпроса с командата, която използвах за създаване на DB.   -  person rickkr    schedule 28.05.2014


Отговори (4)


Реших да използвам инсталационен пакет от трета страна който използва MySQL backend вместо SQL Server, работи като чар. Морал на историята: SQL Server + Redmine + Windows Server = сълзи.

person rickkr    schedule 29.05.2014

Това е информацията за моята среда:

bundle show activerecord-sqlserver-adapter
/opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-sqlserver-adapter-4.2.6

bundle show tiny_tds
/opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/tiny_tds-0.6.2

Всеки път, когато правя малка промяна в конфигурационните файлове, стартирам:

RAILS_ENV=production bundle install --without development test --without development test

Когато се опитам да изпълня db:migrate, получавам tinyTDS грешка:

RAILS_ENV=production bundle exec rake db:migrate
/opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
rake aborted!
TinyTds::Error: Unable to connect: Adaptive Server is unavailable or does not exist

Възможни проблеми

Първото нещо относно конфигурацията е, че трябва да посочите config/database.yml към IP адреса на слушателя и не към базите данни на sql сървъра.

production:
  adapter: sqlserver
  database: redmine
  host: listener.mysqlserver.myorg.com
  username: redmine
  password: mypass

Използвайки TCPDump, можете също да проверите дали базата данни отговаря на вашето копие на redmine:

  tcpdump -i eth0 | grep listener.mysqlserver.myorg.com

Трябва да има трафик и в двете посоки. В противен случай има изчакване поради: конфигурация на базата данни, мрежови маршрути, потребител, парола....

person Ester Niclós Ferreras    schedule 09.12.2015

За SQL Express трябваше да използвам IP адреса за host и да променя port.

Нещо подобно в database.yaml: production: adapter: sqlserver database: REDMINE host: 192.168.0.20 username: REDMINE password: hot-dang-47-balls! port: 63151

Вашият IP адрес и порт може да са различни. Проверете тук: SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for SQLEXPRESS > TCPIP (Properties).

person dalenewman    schedule 05.04.2016

Неща за проверка:

  1. TCP/IP връзката активирана ли е в SQL Server Configuration Manager?
  2. Удостоверяването на сървъра зададено ли е на SQL Server и Windows Authentication Mode?
  3. Можете ли да се свържете със сървъра от SSMS или Visual Studio?
  4. Въпреки че за Express Edition документите на TinyTDS казват, че може да се свързва през SQL браузър, но според моя опит НЕ МОЖЕ! И така, намерете порта, който SQL слуша, и го задайте в конфигурационния файл. Също така не е необходимо да споменавате посочения екземпляр в конфигурационния файл.
  5. Защитната стена ВКЛЮЧЕНА ли е или ИЗКЛЮЧЕНА? Ако е ВКЛЮЧЕНО, SQL портът отворен ли е или не?

И накрая ето конфигурационния файл, който работи добре за мен:

production:
  adapter: sqlserver
  host: 'WIN10'
  #instance: SSE2K14
  port: 53540
  database: redmine
  username: REDMINE1 # should match the database user name
  password: "redminepassword" # should match the login password
person Behzad Sedighzadeh    schedule 09.01.2021