簡體   English   中英

Docker Passenger Dashboard顯示MySQL無法連接到套接字

[英]Docker Passenger Dashboard shows MySQL can't connect to socket

我正在嘗試在phusion / passenger-ruby21容器和單獨的mysql:5.5.46容器上部署Ruby on Rails應用程序。 兩者都鏈接而無需docker compose。

我用以下sudo docker run -it -p 80:80 --link mysql55:mysql -e .env --name ror1 rubyonrails-phusionimg2 /bin/bash了Passenger-ruby容器: sudo docker run -it -p 80:80 --link mysql55:mysql -e .env --name ror1 rubyonrails-phusionimg2 /bin/bash mysql容器: sudo docker run --detach --name mysql55 --env MYSQL_ROOT_PASSWORD=**** --env MYSQL_USER=**** --env MYSQL_PASSWORD=**** --env MYSQL_DATABASE=**** mysql:5.5.46

這是我在Rails應用程序中的database.yml

staging:
  adapter: mysql2
  database: "<%= ENV["DATABASE_NAME"] %>"
  host: "<%= ENV["MYSQL_PORT_3306_TCP_ADDR"] %>"
  port: "<%= ENV["MYSQL_PORT_3306_TCP_PORT"] %>"
  username: "<%= ENV["DATABASE_USERNAME"] %>"
  password: "<%= ENV["DATABASE_STAGING_PASSWORD"] %>"

這是webapp.conf:

# /etc/nginx/sites-enabled/webapp.conf:
 server {
    listen       80;
    server_name  *****.com;
    root /home/app/webapp/public;
    passenger_enabled on;
    rails_env staging;
    index index.html index.htm;
    # auth_basic "Restricted";
    # auth_basic_user_file /etc/nginx/htpasswd;
}

rake db:create db:migrate成功運行,這意味着具有暫存環境的rake程序能夠訪問mysql數據庫容器。 但是從乘客儀表板,我仍然得到Can't connect to local MySQL server through socket /var/run/mysqld/mysqld.sock (2)

我想念什么嗎? 所有環境似乎都已加載並且正確。

您未在應用程序中指定與mysql的連接主機。

如果不指定主機,mysql將嘗試連接主機上的服務器而不是容器中的服務器。

我更改了apps database.yml文件中的mysql數據庫環境變量,這些變量在啟動容器並連接到mysql數據庫時已預加載。 例如,“ DATABASE_NAME”到“ MYSQL_ENV_MYSQL_DATABASE”。

staging:
  adapter: mysql2
  database: <%= ENV['MYSQL_ENV_MYSQL_DATABASE'] %>
  host: <%= ENV['MYSQL_PORT_3306_TCP_ADDR'] %>
  port: <%= ENV['MYSQL_PORT_3306_TCP_PORT'] %>
  username: <%= ENV['MYSQL_ENV_MYSQL_USER'] %>
  password: <%= ENV['MYSQL_ENV_MYSQL_PASSWORD'] %>`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM