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