Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
JRuby,Rails 2.3.5,MySQL数据库不是用rake db:create:all创建的_Mysql_Ruby On Rails_Jruby_Jdbc_Jrubyonrails - Fatal编程技术网

JRuby,Rails 2.3.5,MySQL数据库不是用rake db:create:all创建的

JRuby,Rails 2.3.5,MySQL数据库不是用rake db:create:all创建的,mysql,ruby-on-rails,jruby,jdbc,jrubyonrails,Mysql,Ruby On Rails,Jruby,Jdbc,Jrubyonrails,基本信息: Ruby version : 1.8.7 JRuby version: 1.5.3 Rails version: 2.3.5 Mysql version: Ver 14.14 Distrib 5.1.48, for apple-darwin10.3.0 (i386) using readline 5.1 我一直在努力让JRuby、Rails和MySQL配合得很好。我走到了死胡同,现在需要一些帮助 我已经安装了我认为正确的gems,允许JRoR与MySQL对话。下面是我安装的gem

基本信息:

Ruby version : 1.8.7
JRuby version: 1.5.3 
Rails version: 2.3.5
Mysql version: Ver 14.14 Distrib 5.1.48, for apple-darwin10.3.0 (i386) using readline 5.1
我一直在努力让JRuby、Rails和MySQL配合得很好。我走到了死胡同,现在需要一些帮助

我已经安装了我认为正确的gems,允许JRoR与MySQL对话。下面是我安装的gems列表。我是如何尝试创建JOR+MySQL应用程序的:

$ jruby -S rails -d mysql app_name
$ cd app_name
打开Textmate并通过将所有适配器从“mysql”更改为“jdbcmysql”来配置config/database.yml

返回航站楼:

$ jruby -S script/generate scaffold post title:string content:text
$ rake db:create:all
在这一点上,rake没有吐出任何东西来告诉我数据库是创建的。以下是尝试运行我的迁移的结果:

$ rake db:migrate

rake aborted!
The driver encountered an unknown error: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'app_name_development'
我不知道我做错了什么,非常感谢你的帮助

以下是我目前的宝石清单:

$ jruby -S gem list
*本地宝石*

abstract (1.0.0)
actionmailer (3.0.0, 2.3.5)
actionpack (3.0.0, 2.3.5)
activemodel (3.0.0)
activerecord (3.0.0, 2.3.5)
activerecord-jdbc-adapter (1.0.2, 0.9.7)
activerecord-jdbcmysql-adapter (1.0.2, 0.9.7)
activerecord-jdbcsqlite3-adapter (0.9.7)
activeresource (3.0.0, 2.3.5)
activesupport (3.0.0, 2.3.10, 2.3.5)
after_commit (1.0.8)
arel (1.0.1)
bouncy-castle-java (1.5.0145.2)
builder (2.1.2)
bundler (1.0.2)
columnize (0.3.1)
erubis (2.6.6)
gem_plugin (0.2.3)
i18n (0.4.1)
jdbc-mysql (5.0.4)
jdbc-sqlite3 (3.6.3.054)
jruby-jars (1.5.3)
jruby-openssl (0.7.2)
jruby-rack (1.0.3)
mail (2.2.7)
mime-types (1.16)
mongrel (1.1.5)
polyglot (0.3.1)
rack (1.2.1, 1.0.1)
rack-mount (0.6.13)
rack-test (0.5.6)
rails (2.3.5)
railties (3.0.0)
rake (0.8.7)
riddle (1.1.0)
rspec (1.3.0)
ruby-debug (0.10.3)
ruby-debug-base (0.10.3.2)
rubyzip (0.9.4)
sources (0.0.1)
thinking-sphinx (1.3.20)
thor (0.14.3)
treetop (1.4.8)
tzinfo (0.3.23)
warbler (1.2.1)
will_paginate (2.3.15)

您不需要将数据库名称更改为
jdbcmysql
。事实上,这样做会使db:create(:all)失败

我注意到“未知数据库'应用程序名称'开发'错误”。app_name_development真的是database.yml中数据库的名称吗?只是检查一下,如果没有,那将非常有趣

我假设您没有使用root帐户连接到MySQL。如果是这样,您连接的用户是否具有创建数据库应用程序\u name\u开发的权限?默认情况下,只有root用户可以创建数据库。您可以通过以下方式授予用户权限:

GRANT CREATE on app_name_development.* to 'user'@'host';

我尝试将其保留为默认值(mysql),并在步骤“jruby脚本/generate jdbc”中添加。运行rakedb:createafter会产生一个“无法创建数据库”错误。对于MySQL,我使用root作为无通行证的用户。这个配置在Ruby on Rails和MySQL中运行得很好,但是JRuby on Rails和MySQL在我的机器上似乎无法协同工作。database.yml中我的数据库的名称是app_name_development、app_name_test、app_name_production,其中我的Rails应用程序的名称实际上是“app_name”。还有人有想法吗?到目前为止,我还没有进一步解开这个谜。