Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用不同的数据库执行单个查询。RubyonRails_Mysql_Ruby On Rails_Activerecord - Fatal编程技术网

Mysql 使用不同的数据库执行单个查询。RubyonRails

Mysql 使用不同的数据库执行单个查询。RubyonRails,mysql,ruby-on-rails,activerecord,Mysql,Ruby On Rails,Activerecord,我有一个RubyonRails项目,我想让用户执行SQLSELECT查询 为了安全起见,我有两个mysql数据库。其中一个是我的主数据库,包含用户信息等等。 第二个数据库用于保存“test”表,其中用户应该能够使用我授予“SELECT”权限的特定数据库用户来选择内容 基本上,我希望我的用户提交一个查询,然后我希望更改到我的测试数据库,运行该查询,返回一个结果,然后返回到我的旧数据库 数据库.yml mysql: &mysql adapter: mysql database: sq

我有一个RubyonRails项目,我想让用户执行SQLSELECT查询

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

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

数据库.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
当我尝试执行查询时,会出现以下错误:

Mysql::Error in StagesController#sql_query

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

修复

database.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
development:
  adapter: mysql
  database: sql_detective
  user: root
  password: root
  timeout: 5000
development:
  adapter: mysql
  database: sql_detective
  username: root
  password: root
  timeout: 5000