-->

Cannot assign requested address - bind(2) (Errno::

2020-03-15 20:46发布

问题:

I am using rail for teambox at centos 6.3 server, actually this is just a trial and error before applying it live.

  • I'm using 2 virtual box that running on same centos version and exact copy, VM2 is only run mysql that will be remote from VM1
  • I have tried mysql connection #nc and it's connected
  • VM1 (192.168.7.201) & VM2 (192.168.7.202 running MYSQL)
  • I have bind-address on remote machine (VM2) in my.cnf with bind-address=192.168.7.202
  • here's my database.yml

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

and I am trying to run with #rails server -e development -b 192.168.7.202 and giving this error

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)

please help me out

回答1:

try this

rails server -e development -b 0.0.0.0 -p 3000

0.0.0.0 means it listens on all IPv4 addresses on the local machine



回答2:

Rails 5.0.0.1 server not working without IPv6. You need to enable IPv6 from /etc/sysctl.conf file(IPv6 is enabled by default). Remove or comment these lines if you have any.

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

Reboot the server to enable IPv6.

try

rails server



回答3:

Try as following:

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


I think any of the above will work.



回答4:

This means the server is already running on that port

try

rails server -e development -p 3001 -b 192.168.7.202


回答5:

The error is coming becuase 3000 port is already in use. And the command is trying to run in the same port. so change the port and run. add this also -p 3002