gpt4 book ai didi

mysql - 为什么仅通过 Rails 中的套接字访问我的 Rails mysql 时会损坏?

转载 作者:行者123 更新时间:2023-11-29 08:58:22 24 4
gpt4 key购买 nike

更新:事实上,当我自己有一个基于 mySQL 的应用程序时,我仍然收到套接字错误 -

Mysql2::错误:无法通过套接字“/opt/local/var/run/mysql5/mysqld.sock”连接到本地 MySQL 服务器 (2)

所以我的mysql一定是搞砸了,但我不知道如何修复它。我可以通过 mysql 完全进入它,并且我可以“使用”我的数据库并在 mysql 提示符下从表中进行选择。

但是 Rails 应用程序或 Rails 控制台我无法工作。

我正在尝试访问 mysql 和 postgres 数据库,但是当我尝试访问 mysql 时,我得到了 postgres 信息!注意:我正在尝试将其移至“to”postgres,并且我认为它是“master”(如果重要的话),而 mysql 是我试图获取的旧数据的来源(只读)。

具体来说,我在每个数据库中有一个用户表。我的 database.yml 文件中有以下内容:

common: &common
adapter: postgresql
encoding: unicode
host: localhost
encoding: UTF8
username: my_user_name

development:
<<: *common
database: newapp_development
pool: 5

mysql_development:
adapter: mysql
encoding: utf8
username: my_user_name
database: oldapp_development

我在 postgres 中有一个用户表和一个用户模型:

class User < ActiveRecord::Base
end

我在 mysql 中有一个用户表,以及一个放置在 models/Mysql 子目录中的用户模型。它仍然被称为 user.rb 但其内容是:

class Mysql::User < ActiveRecord::Base
establish_connection "mysql_development"
end

但是,当我进入控制台并执行 Mysql::User.all 时,我得到:

`[1] pry(main)> Mysql::User.all
(pry):1: warning: toplevel constant User referenced by Mysql::User
User Load (2.6ms) SELECT "users".* FROM "users"`

但是...返回的数据来自 postgres 而不是 mysql。我可以看出,不同用户表中的列名完全不同,而且只有 5 条记录,而不是我期望的 464 条记录。

我确信这一定是可能的,但我只是命名空间错误或其他问题,但到目前为止我尝试过的每个组合都不起作用。

我尝试将目录名称更改为“Oldapp”,将模型名称更改为 OldApp::MysqlUser,但是当我这样做并尝试 Oldapp::MysqlUser.all 时,我得到了

Mysql::Error: Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)
from /Users/michaeldurrant/.rvm/gems/ruby-1.9.2-p290@ruby1.9.2_Abroad101/gems/activerecord-3.1.3/lib/active_record/connection_adapters/mysql_adapter.rb:931:in `real_connect'

最佳答案

您可以在mysql_development中添加套接字路径吗:

  mysql_development:
adapter: mysql
encoding: utf8
username: my_user_name
database: oldapp_development
socket: '/var/run/mysqld/mysqld.sock'

要查找系统上的套接字路径,请引用此文件:/etc/mysql/my.cnf

关于mysql - 为什么仅通过 Rails 中的套接字访问我的 Rails mysql 时会损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9315492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com