gpt4 book ai didi

mysql - Rails 4.2 连接到旧的遗留 Mysql 数据库 - 错误

转载 作者:行者123 更新时间:2023-11-30 22:43:15 25 4
gpt4 key购买 nike

经过几个小时的谷歌搜索,尝试了这个和那个,我想知道这里是否有人对如何克服这个错误有任何建议。

首先,我正在处理一个非常旧的 MySQL v3.23.58 数据库/服务器,此时我无法升级。正在从这个数据库迁移,但我现在需要通过 Rails UI 访问它。所以我在下面得到的错误似乎与发送的初始连接字符串不兼容,设置了一些 session 变量,是吗?我可以使用 *nix 命令行 mysql-client 连接到远程 DD/服务器并执行查询。我已经尝试通过连接定义更改初始值,但没有成功。我正在考虑将数据从远程服务器发送到本地 Rails 数据库并远程查询本地数据库的替代选项。但在这个时刻,我更愿意直接读/写远程数据库。如有任何帮助,我们将不胜感激!

谢谢

td@noc:~/rails_workspace/SC$ rails c
Loading development environment (Rails 4.2.1)
2.2.1 :001 > ServerBan
=> ServerBan (call 'ServerBan.connection' to establish a connection)
2.2.1 :002 > b = ServerBan.first()
Mysql::Error: You have an error in your SQL syntax near 'NAMES latin1, @@SESSION.sql_mode = '', @@SESSION.strict = 0, @@SESSION.sql_auto' at line 1

./config/database.yml

server1:
adapter: mysql2
encoding: utf8
pool: 5
host: <ip>
port: 3306
username: <user>
password: <passwd>
database: monitor
strict: false
variables:
sql_mode: ''

./app/models/serverban.rb

class ServerBan < ActiveRecord::Base
establish_connection :server1
self.table_name='rules'
end

最佳答案

修改./config/database.yml文件如下:

server1:
adapter: mysql2
encoding: utf8
pool: 5
host: <ip>
port: 3306
username: <user>
password: <passwd>
database: monitor
strict: false
variables:
sql_mode: ''

只有 sql_mode 应该在变量部分下。 strict 将成为主要参数的一部分。

参见 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/MysqlAdapter.html有关每个参数的解释,包括 variables 参数。

关于mysql - Rails 4.2 连接到旧的遗留 Mysql 数据库 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491483/

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