UBUNTU14下Ruby On RAIL 連結mysql 出現問題


#1

您好:
我參考 網路上教學 使用 UUNTU 14.04 X64 +LAMP
然後要連 MYSQL
1.cd ~/project
2.執行 rails new project2 -d mysql #指定使用MySQL資料庫
切換到該專案目錄下 cd project2
3.執行 bundle #更新Gem套件
4.執行 rails g controller Students index show new create edit update destroy #建立學生控制器 (複數),後面可接多個方法 (也可空白,後面再手動新增方法 vi app/controllers/students_controller.rb)

但是卻出現:以下 錯誤訊息
我有 vim config/database.yml 填入密碼
然後 bundle 過了,但仍是一樣的結果!

再麻煩 撥空指導,謝謝!

===================錯誤訊息
wayout@ubuntu:~/projects/project2$ rails g controller Students index show new create edit update destroy
/home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:177:in rescue in spec': Specified 'mysql2' for database adapter, but the gem is not loaded. Addgem 'mysql2’to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). (Gem::LoadError) from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:174:inspec’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:50:in establish_connection' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/railtie.rb:120:inblock (2 levels) in class:Railtie
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:in instance_eval' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:inexecute_hook’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:45:in block in run_load_hooks' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:44:ineach’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:44:in run_load_hooks' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/base.rb:316:inmodule:ActiveRecord
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/activerecord-4.2.0/lib/active_record/base.rb:26:in <top (required)>' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:338:inactive_record_configured?'
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:259:in disconnect_database' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:97:inpreload’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:143:in serve' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:131:inblock in run’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:125:in loop' from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application.rb:125:inrun’
from /home/wayout/.rvm/gems/ruby-2.2.0@rails420/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in <top (required)>' from /home/wayout/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:inrequire’
from /home/wayout/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in require' from -e:1:in


#2

檢查一下你的 Gemfile 裡面有沒有

gem 'mysql2'

沒有的話把它加上然後再跑一次 bundle install


#3

您好:裡面已經有 mysql2 了
bundle 一樣出現錯誤

gem list mysql2
*** LOCAL GEMS ***

mysql2 (0.4.4)


#4

我比較 care 你有沒有裝 libmysqlclient-dev,因為我不知道你的 LAMP 是怎樣裝的

你可以這樣輸入看看

sudo apt-get install libmysqlclient-dev

如果上面的沒有時,同樣指令,打到 libmysqlclient 後(無空白)按 tab 兩下,會有提示的 lib name 然後裝有 dev 結尾的,然後再把 mysql2 gem 重裝一次應該就會過了,試試看?

mysql2 gem 除了 帳號 / 密碼 / sock or host + post 打錯外,最常見的應該是 lib 問題唄


#5

您好:
我已經ˇ有安裝 libmysqlclient-dev 了
我再 執行 gem install mysql2
在~/projects/project2$ 下 bundle
OK

再執行 rails g controller Students index show new create edit update destroy
一樣出現 相同問題
我參考 http://afgnsu.logdown.com/posts/257534-ubuntu-install-ror-notes 來操作的!

還是 目前 要用哪一個版本 才不會有問題?


#6

Orz"…誰的不看去看他的|||

目前建議安裝的 Ruby 版本是 2.3.1,Rails 版本號不要加,然後重新一次試試看?


#7

您好:
因為看他一步一步地操作,想先試試看!

我有重裝 rvm install 2.3.1
rvm use 2.3.1

rails 我沒重裝
但結果一樣錯誤..


#8

我剛測了一次(剛好新測試專案要用|||)
環境 Ubuntu 16.04,以下你就一直複製貼上應該就會過的,#是註解請略過
YOUR_PROJECT_NAME 請填你要的專案名稱
YOUR_IP 請填你自己的IP,可能為 127.0.0.1

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server libmysqlclient-dev
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
echo 'gem: --no-rdoc --no-ri' > ~/.gemrc
#裝 gem 時不自動建立 rdoc & ri
rvm install 2.3.1
#會叫你輸入密碼,裝其他相依性的lib
gem i rails -v=4.2.7.1
#目前5.0剛上,不過教學比較不多,4.2教學比較多,所以可以上最後一版的4.2
rails new YOUR_PROJECT_NAME -d mysql
cd YOUR_PROJECT_NAME

#在Gemfile內增加一行
#gem 'therubyracer'
#來讓 JavaScript runtime 正常執行,否則你要另外裝 nodejs 之類的 lib

#編輯 config/database.yml 輸入正確的帳號密碼

bundle install
rails g scaffold item name:string page_count:integer
rake db:create db:migrate
rails s -b 0.0.0.0
# 虛擬機請加 -b 0.0.0.0 才能讓外部連線
# 輸入類似 http://YOUR_IP:3000/items 應該就可以玩了

打完收工…

其餘的,我們真的有一系列的教學影片,請你先參考唄

https://www.youtube.com/playlist?list=PLJ6M-k9dQEQ3VsyOZQwjZ5GdjaLJH3eB_


#9

您好:
謝謝
我一直 操作到 rake db:create db:migrate
但出現
Access denied for user ‘root’@‘localhost’ (using password: NO)Please provide the root password for your MySQL installation
於是我到 專案名稱 R01
~/R01/config$ 下 password: 輸入密碼

接著http://YOUR_IP:3000/items
卻是連線失敗!

謝謝您的影片,想先把這一個問題處理掉,再重頭看


#10
#並編輯 config/database.yml 輸入正確的帳號密碼

我上面有寫給你了哩,在安裝 mysql 時應該有叫你輸入帳號密碼才是,而你也應該要學會看錯誤訊息才是

default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: root
password: 你的密碼填這邊......

YOUR_IP 是你自己的 IP 可能為 127.0.0.1 或 VM 的 IP
至於其他的 Linux 操作 … 請自己去學哩 …


#11

不好意思
我以為您#掉,不要管
且為輸入密碼後,沒有bundel
OK了!
謝謝!

再從頭來過!


#12

您好:
不好意思,想再請教
想請問 有影片的 文字大綱 或範例檔案 可下載嗎?

謝謝!


#13

所以…你都沒看置頂文|||


#14

您好:
不好意思
當初真的沒有看到 置頂文,
不過 Google Doc : 主力新手教學文件整理後的保留處 連結 無法連結!

謝謝!


#15

這是難解的問題 Orz" 你用 Chrome 的無痕模式或 Firefox 的私密瀏覽試看看?


#16

您好:
謝謝
最後用FIREFOX 私密瀏覽才能 過!
一開始 我就用chrome 隱私,無法過
不過 分享的檔案,似乎 跟 影片檔 內的 課程大綱內容 沒什麼關聯!!


#17

嗯?裡面不是有『主要教學內容』這個資料夾,然後裡面就是影片中開的檔案 1 : 1

抱歉這份教學從頭到尾都沒有逐字稿而只有影片,我是指導者 / 程式設計師,而非打字員,我沒和你收費,也沒有義務這樣一直回答你下去,好嗎 ?

再來,你繼續這樣下去的心態真的能成為程式設計師嗎?什麼都要人家餵給你,教你怎麼做,那麼這世界上第一個程式設計師是怎樣產生的?擁有上進心求知慾和解決問題的能力,缺一不可,即使沒有這邊的影片和教學,網路上滿滿的都是 document / video / book 在教導同一件事情,這邊分享出來的東西大都也是二次分享的結果,Linux 遇到問題請自己去學,英文看不懂也請去看,真的遇到難以解決的問題才提出來,『自救者,人恒救之』

你未來面對的問題都是要靠你自己解決的 … 沒人可以幫你從頭解到尾,否則你的薪水應該付給幫你解題的那個人,不是嗎?open source 社群都是用愛在經營的,你的心態不可取,抱歉,我說的難聽的話


#18

樓主慢慢來

如果都沒跑過 建議先把RAILS 101 他們新手教學先去跑一輪

COPY 貼上 按步驟去做 很快 但他沒講很多很細節的東西 我一開始也看不懂…

你一定很多不懂他們某些指令的用意 還有精簡過的SQL原理

之後再把JC大的 教學影片都看過

依樓主目前狀態 最少要看完2.5 DAY

都講到很詳細了

看完之後 多去釐清概念

然後用rails c 去玩看看他的sql 相關指令關鍵字google就找的到了

基本上上面都弄完一個簡單型的討論版都可以做出來了(2~3個星期左右)

先做功課 功課做完不懂再上來詢問會比較好喔~

:kissing_closed_eyes:


#19

您好:個人愚昧 讓您生氣,請見諒!
單純只是 看到影片中 有大綱,想問一下是否有大綱 文件

這樣自己做筆記 也比較快!
若沒有,自已再邊看邊做也可以!

謝謝您了回覆 與分享!