gpt4 book ai didi

mysql - 使用不同的数据库执行单个查询。 Rails 上的 Ruby

转载 作者:行者123 更新时间:2023-11-29 07:04:43 25 4
gpt4 key购买 nike

我有一个 Ruby on Rails 项目,我想让用户在其中执行 SQL SELECT 查询。

为了安全起见,我有两个mysql数据库。其中之一是我的主数据库,其中包含用户信息等。第二个数据库旨在保存“测试”表,其中用户应该能够使用我授予“选择”权限的特定数据库用户来选择内容。

基本上,我希望我的用户提交查询,然后我想更改到我的测试数据库,运行该查询,返回结果,然后返回到我的旧数据库。

数据库.yml

mysql: &mysql
adapter: mysql
database: sql_detective
user: root
password: root
timeout: 5000

mysql_tests: &mysql_tests
adapter: mysql
database: sql_detective_tests
user: user
password: user
timeout: 5000

test:
<<: *mysql_tests
development:
<<: *mysql

Funcionario.rb

class Funcionario < ActiveRecord::Base
establish_connection :test
end

stages_controller.rb

@query = Funcionario.find_by_sql(params[:query])

当我尝试执行查询时,出现此错误:

Mysql::Error in StagesController#sql_query

Access denied for user 'root'@'localhost' (using password: YES)

最佳答案

已解决。

修复

数据库.yml

将用户更改为用户名即可解决所有问题。

像这样...

之前

development:
adapter: mysql
database: sql_detective
user: root
password: root
timeout: 5000

之后

development:
adapter: mysql
database: sql_detective
username: root
password: root
timeout: 5000

关于mysql - 使用不同的数据库执行单个查询。 Rails 上的 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020814/

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