Невозможно назначить запрошенный адрес - bind(2) (Errno::EADDRNOTAVAIL)

Я использую rail для teambox на сервере centos 6.3, на самом деле это просто метод проб и ошибок, прежде чем применять его вживую.

  • Я использую 2 виртуальных ящика, которые работают на той же версии Centos и точной копии, VM2 запускает только mysql, который будет удален от VM1.
  • Я пробовал соединение mysql #nc, и оно подключено
  • ВМ1 (192.168.7.201) и ВМ2 (192.168.7.202 с MYSQL)
  • У меня есть адрес привязки на удаленной машине (VM2) в my.cnf с адресом привязки = 192.168.7.202.
  • вот моя база данных.yml

разработка:
адаптер: mysql
хост: 192.168.7.202
порт: 3306
имя пользователя: teambox
пароль: pass
база данных: teambox

и я пытаюсь запустить с #rails server -e development -b 192.168.7.202 и выдаю эту ошибку

Exiting
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel/tcphack.rb:12:in `initialize_without_backlog': Cannot assign requested address - bind(2) (Errno::EADDRNOTAVAIL)

пожалуйста, помогите мне


person Mahardhika    schedule 13.12.2012    source источник


Ответы (5)


попробуй это

rails server -e development -b 0.0.0.0 -p 3000

0.0.0.0 означает, что он прослушивает все адреса IPv4 на локальном компьютере.

person Bill Panagiotopoulos    schedule 20.10.2016
comment
Просто rails s -b 0.0.0.0 сделал это за меня. - person skplunkerin; 12.12.2016

Сервер Rails 5.0.0.1 не работает без IPv6.

Вам необходимо включить IPv6 из файла /etc/sysctl.conf (IPv6 включен по умолчанию).

Удалите или закомментируйте эти строки, если они у вас есть.

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

Перезагрузите сервер, чтобы включить IPv6. Пытаться:

rails server
person Surinder Singh    schedule 16.10.2016

Попробуйте следующее:

development:
 adapter: mysql
 host: 127.0.0.1
 port: 3306
 username: teambox
 password: pass
 database: teambox


(or)

development:
 adapter: mysql
 host: localhost
 port: 3306
 username: teambox
 password: pass
 database: teambox


Я думаю, что любой из вышеперечисленных будет работать.

person VenkatK    schedule 13.12.2012
comment
он будет работать только на локальном хосте, и это работает, но я хочу, чтобы mysql запускался на отдельной машине, которая называется VM2 (192.168.7.202) - person Mahardhika; 13.12.2012
comment
рельсы с -Е разработка -б 192.168.7.202 - person VenkatK; 13.12.2012

Это означает, что сервер уже работает на этом порту.

пытаться

rails server -e development -p 3001 -b 192.168.7.202
person Salil    schedule 13.12.2012
comment
Я оставляю порт по умолчанию с 3000, забыл позвонить, я устанавливаю эти две машины с рубином и драгоценными камнями, это тоже создает проблему? - person Mahardhika; 13.12.2012
comment
Как и в нескольких других комментариях, ошибка EADDRNOTAVAILABLE. Если бы что-то работало на этом порту, ошибка была бы EADDRINUSE. - person Joseph Larson; 07.08.2018

Ошибка возникает из-за того, что порт 3000 уже используется. И команда пытается запуститься в том же порту. так что меняй порт и беги. добавьте это также -p 3002

person vijikumar    schedule 13.12.2012