使用Rails连接到远程MySQL主机的问题

Jör*_*chs 6 mysql database ruby-on-rails

我想连接到远程MySQL主机(带rake db:create),但Rails总是认为它是本地的.Database.yml使用以下配置:

defaults: &defaults
  encoding: unicode
  adapter: mysql
  username: <username>
  password: *************
  port: 3306
  host: <remote ip address>

development:
  <<: *defaults
  database: <db name>
test: &test
  <<: *defaults
  database: <db name>
production:
  <<: *defaults
  database: <db name>
Run Code Online (Sandbox Code Playgroud)

在数据库上尝试任何操作时总是会出现此错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Run Code Online (Sandbox Code Playgroud)

只要我使用本地数据库(即没有主机/端口部分),配置就可以工作.连接到远程MySQL服务器与给定的细节工作正常.

什么是错误的任何想法?

编辑:问题只发生rake:db:create,其他任务工作 - 错误消息真的很误导.

Yea*_*een 1

您可能需要启用MySQL服务器来接受远程请求(通过绑定到主机的IP地址或所有地址格式0.0.0.0)。编辑my.cnf远程主机上的 MySQL 配置文件。在 Ubuntu 中,您可以在以下位置找到该文件/etc/mysql/my.cnf

更改绑定地址的值:

bind-address            = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)