【问题标题】:Rails Can't connect to MySQL server on 'localhost'Rails 无法连接到“localhost”上的 MySQL 服务器
【发布时间】:2012-11-30 10:38:54
【问题描述】:

我的 Rails 3 应用程序的 Mysql 连接问题无穷无尽,尽管我研究了无数相关线程。我的错误信息:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/client.rb:44:in `connect': Can't connect to MySQL server on 'localhost' (10061) (Mysql2::Error)

(在将其标记为重复问题之前,请考虑是否可以找到另一个具有我未遵循的相关建议的线程。)

到目前为止我的努力:

我已将 libmysql.dll 文件从 <mysql installation>/bin 复制到 <ruby installation>/bin

我在捆绑包中有 mysql2 gem,它是与连接器一起安装的 (--with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32):

> bundle show mysql2
C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32

我相信我的 database.yml 文件配置正确:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: tq_development
  pool: 5
  username: root
  password: pinney
  host: localhost

【问题讨论】:

  • 可以在命令行连接/运行mysql吗? (或您可能在此 Windows 中使用的任何工具?)。 MySQL 是设置为自行启动还是您必须手动启动它(据我所知,这在某种程度上是 Win 上的一个选项)。 this 列出了检查基本功能是否有效的几个步骤。
  • 你在哪个端口上运行mysql?当您在命令行上执行 mysql --help 时,输出是什么?
  • 是的,我可以。 mysqld.exe 作为进程运行,mysql 作为服务运行。
  • @Leo Correa 这是默认端口 3306。
  • 您可以尝试在 yml 文件中添加一个 port: 3306 字段吗?这是mysql的默认端口。

标签: mysql ruby-on-rails mysql2


【解决方案1】:

尝试将 localhost 替换为 127.0.0.1(在工作台和 yml 中)

【讨论】:

  • 哇,原来如此。为什么 Ruby 不知道 'localhost' 是什么意思?我的意思是这只是标准! Ruby 太笨了。
  • 不是 Ruby 问题,这是 MySQL 的工作方式。
【解决方案2】:

您是否在相关项目上运行过 rake db:create?

【讨论】:

    【解决方案3】:

    我同意上述观点......确保它可以与工作台或其他一些 GUI 工具一起使用,并且您可以使用 database.yml 文件的信息进行连接。

    如果不是....回来再给我们打个招呼。

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 2012-06-03
      • 2010-09-27
      • 2021-12-18
      • 2010-09-12
      • 2012-02-24
      • 1970-01-01
      • 2014-03-10
      • 2014-11-08
      相关资源
      最近更新 更多