ror:关于数据库迁移

当我进么数据库迁移时,它显示:

rake aborted!
Client does not support authentication protocol requested by server; consider upgrading MySQL client

(See full trace by running task with --trace)

请问是什么原因造成的,怎么解决?

谢谢

[b]问题补充:[/b]
试过了,没有用啊
[b]问题补充:[/b]
当我执行 rake db:migrate --trace 时,显示:

rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2377:in raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in
load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in
load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in
load'
/usr/bin/rake:19

还有就是ruby-mysql找不到这个资源啊
[b]问题补充:[/b]
我的是ubuntu9.04,迁移是在netbeans6.5里面直接右击迁的,在命令行执行时,它显示:

rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2377:in `raw_load_rakefile'
(See full trace by running task with --trace)

rake是在当前的项目下执行的
[b]问题补充:[/b]
在NetBeans里面用鼠标进行迁移操作时是:

rake aborted!
Client does not support authentication protocol requested by server; consider upgrading MySQL client

(See full trace by running task with --trace)

--trace

(in /home/evan/Eshop/Eshop)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
** Execute db:migrate
Client does not support authentication protocol requested by server; consider upgrading MySQL client
/usr/lib/ruby/1.8/mysql.rb:453:in read'
/usr/lib/ruby/1.8/mysql.rb:130:in
real_connect'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:548:in connect'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:198:in
initialize'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:74:in new'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:74:in
mysql_connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in send'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in
new_connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in checkout_new_connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in
checkout'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in loop'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in
checkout'
/usr/lib/ruby/1.8/monitor.rb:242:in synchronize'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in
checkout'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in
retrieve_connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:121:in retrieve_connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:113:in
connection'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:429:in initialize'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:394:in
new'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:394:in up'
/var/lib/gems/1.8/gems/activerecord-2.2.2/lib/active_record/migration.rb:377:in
migrate'
/var/lib/gems/1.8/gems/rails-2.2.2/lib/tasks/databases.rake:111
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in call'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
execute'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
execute'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in
synchronize'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in
invoke'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in invoke_task'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in
top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in
top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in
top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in run'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in run'
/var/lib/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in
load'
/usr/bin/rake:19

###################################

而在命令行执行时,则:

rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2377:in raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in
load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in
load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in
load'
/usr/bin/rake:19

[b]问题补充:[/b]
原因,我也不知道,正在找
[b]问题补充:[/b]
执行sudo gem install mysql 显示:

Building native extensions. This could take a while...
Successfully installed mysql-2.7
1 gem installed
Installing ri documentation for mysql-2.7...
Installing RDoc documentation for mysql-2.7...

然后在NetBeans中迁移,结果还是一样

通常情况下:
如果不是,mysql的问题,那么Rails这边 rake db:migrate就几个事要注意

  1. mysql的ruby驱动和匹配问题 [code="ruby"]gem install ruby-mysql[/code]
  2. database.yml文件

暂时,想到这些

官方的说法是

[quote]MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. .....[/quote]

其一:

[code="sql"]mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');[/code]

其二:

[code="sql"]mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
[/code]

上面红色的部分请按自己实际情况修改....

这样做后,连接就会正常了@!

先看看是不是你想要的东西

:o

那贴下
[code="ruby"]rake db;migrate --trace[/code]
看看有什么痕迹吗

[url]http://hlee.iteye.com/topics/download/c19eee48-ad7f-3db2-9868-3b78c4e244c0[/url]

如果,你是windows下的话,下载这个先装上看看
解决mysql驱动的问题

后面那个,在哪运行的rake?

是在项目的根目录吗?

那为什么之前错误提示是
Client does not support authentication protocol requested by server; consider upgrading MySQL client
之后,变成了
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
加上trace后,只是增加细节,不可能错误提示完全不一样了啊

从trace提示看,以NetBean有数据提示为依据
应该还是没有驱动的问题
[code="java"]gem install mysql[/code]
试试

我不知道了,放弃啦,看看其他兄弟们有什么办法吧,能量有限啊

哇,一个人帮你搞定这么长时间了,够了