なぜか
gem install mysql
でインストールできない、あらゆるオプションを試したが無理。
yum install ruby-mysql
でインストールできた。
なんだこれ、どういうことかわからなーい
[追記]
gccが入ってなかった(恥ずかしすぎる)
gccを入れた後
gem install mysql -- --with-mysql-config --with-mysql-lib=/usr/lib/myql --with-mysql-include=/usr/include/mysql
でOK!
2009年8月9日日曜日
2009年7月30日木曜日
ruby on rails インストール後のエラー達
railsのインストールは簡単
gem install rails --include-dependencies
でできる。
プロジェクトの作成は
rails [プロジェクト名]
でできる。ここでエラー
SSLEAY32.dllがありません。ウェブで調べてSSLEAY32.dllを持ってきてruby/binに入れればOK。
とりあえず作ったプロジェクトのwebサーバを起動
ruby script/server
OK。
コントローラを作成。
ruby script/generate controller [コントローラ名]
OK。(ここではコントローラ名はDispとした、作成されるファイル名はdisp_controller.rb)
アクションを作成。
---------------------------------------------------------------------
def [アクション名]
end
---------------------------------------------------------------------
OK。(ここではアクション名はhelloRailsとした)
ビューを作成。
ファイル名はhelloRails.rhtml
内容は適当なhtml書けばいい
OK。
ブラウザから動作確認してみる
http://localhost:3000/disp/helloRails
ここでエラー。
500 internal server error
エラーログを見てみると
「sqlite3にアクセスできません」と書いてある。
あたりまえだw sqlite3入ってないしw
どうやらデフォルトでsqliteを使うことになってるらしい(Rails 2.0.2)
mysqlを使いたい人は、プロジェクト作成のときに
rails -d mysql [プロジェクト名]
でプロジェクトを作成すれば良いらしい。
もう一回動作確認。
また500 internal server error
エラーログ確認
access denied user root@localhost password:NO
あーパスワード設定しなきゃいけないのか
config/database.ymlをいじってパスワード設定。(見ればすぐ分かるはず)
もう一回動作確認
また500 internal server error
エラーログ確認
unknown database hello_development
そりゃそうだ、そんなデータベース作ってないし。
じゃあ作る。
----------------------------------------------------
mysql -u root -p
Enter password: **********
mysql> create database hello_development;
----------------------------------------------------
もう一回動作確認。
出来たーーーーーーーーーーーーーーーーー(感動)
てな感じで。でてきたエラーこんなもん。
gem install rails --include-dependencies
でできる。
プロジェクトの作成は
rails [プロジェクト名]
でできる。ここでエラー
SSLEAY32.dllがありません。ウェブで調べてSSLEAY32.dllを持ってきてruby/binに入れればOK。
とりあえず作ったプロジェクトのwebサーバを起動
ruby script/server
OK。
コントローラを作成。
ruby script/generate controller [コントローラ名]
OK。(ここではコントローラ名はDispとした、作成されるファイル名はdisp_controller.rb)
アクションを作成。
---------------------------------------------------------------------
def [アクション名]
end
---------------------------------------------------------------------
OK。(ここではアクション名はhelloRailsとした)
ビューを作成。
ファイル名はhelloRails.rhtml
内容は適当なhtml書けばいい
OK。
ブラウザから動作確認してみる
http://localhost:3000/disp/helloRails
ここでエラー。
500 internal server error
エラーログを見てみると
「sqlite3にアクセスできません」と書いてある。
あたりまえだw sqlite3入ってないしw
どうやらデフォルトでsqliteを使うことになってるらしい(Rails 2.0.2)
mysqlを使いたい人は、プロジェクト作成のときに
rails -d mysql [プロジェクト名]
でプロジェクトを作成すれば良いらしい。
もう一回動作確認。
また500 internal server error
エラーログ確認
access denied user root@localhost password:NO
あーパスワード設定しなきゃいけないのか
config/database.ymlをいじってパスワード設定。(見ればすぐ分かるはず)
もう一回動作確認
また500 internal server error
エラーログ確認
unknown database hello_development
そりゃそうだ、そんなデータベース作ってないし。
じゃあ作る。
----------------------------------------------------
mysql -u root -p
Enter password: **********
mysql> create database hello_development;
----------------------------------------------------
もう一回動作確認。
出来たーーーーーーーーーーーーーーーーー(感動)
てな感じで。でてきたエラーこんなもん。
2009年7月16日木曜日
mysqlのアンインストール
MySQLのアンインストール・・・、やっかいだぜ
MySQLを「プログラムの追加と削除」からアンインストールするとゴミが残るらしい。
そのゴミのせいで新しくMySQLをインストールしても動かない。
Could not start the service MySQL.Error:0
このエラーが出る。
いろいろ調べた結果解決方法を見つけました。
アイビースター[Windows MySQLのアンインストール]
ふぅ、助かった。。。
MySQLを「プログラムの追加と削除」からアンインストールするとゴミが残るらしい。
そのゴミのせいで新しくMySQLをインストールしても動かない。
Could not start the service MySQL.Error:0
このエラーが出る。
いろいろ調べた結果解決方法を見つけました。
アイビースター[Windows MySQLのアンインストール]
ふぅ、助かった。。。
2009年7月7日火曜日
rubyのちょっとしたメモ2 [例外処理]
何度調べてもすぐ忘れる(にわとり、いや、ひよこか)からメモする
[例外処理]
begin
# 例外が発生する可能性のある処理
rescue => e
# 例外が発生したときに行う処理、eには捕捉した例外が入る
else
# 例外が発生しなかったときに行う処理
ensure
# 例外が発生したかどうかに関わらず、必ず行う処理
end
<ソース>
------------------------------------------------------------
begin
open('non-exist.txt')
rescue => error
puts error
else
puts 'ok'
ensure
puts 'end'
end
begin
open('exist.txt')
rescue => error
puts error
else
puts 'ok'
ensure
puts 'end'
end
------------------------------------------------------------
<実行結果>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
No such file or directory - non-exist.txt
end
ok
end
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
こんなことも覚えられない(笑)
[例外処理]
begin
# 例外が発生する可能性のある処理
rescue => e
# 例外が発生したときに行う処理、eには捕捉した例外が入る
else
# 例外が発生しなかったときに行う処理
ensure
# 例外が発生したかどうかに関わらず、必ず行う処理
end
<ソース>
------------------------------------------------------------
begin
open('non-exist.txt')
rescue => error
puts error
else
puts 'ok'
ensure
puts 'end'
end
begin
open('exist.txt')
rescue => error
puts error
else
puts 'ok'
ensure
puts 'end'
end
------------------------------------------------------------
<実行結果>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
No such file or directory - non-exist.txt
end
ok
end
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
こんなことも覚えられない(笑)
rubyのちょっとしたメモ [each]
何度調べてもすぐ忘れる(にわとりだ//)からメモする
[each]
each_indexでインデックスによるイテレーションができる。
<ソース>
---------------------------------------------------------
char = ['a', 'b', 'c']
char.each_index do |i|
puts i
end
---------------------------------------------------------
<実行結果>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0
1
2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
each_with_indexでバリューとインデックスによるイテレーションができる
---------------------------------------------------------
char = ['a', 'b', 'c']
char.each_with_index do |c, i|
puts i
puts c
end
---------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0
a
1
b
2
c
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
eachにはこんな使い方もある
---------------------------------------------------------
a = ['taro', 18, 80]
b = ['jiro', 16, 70]
c = ['tagosaku', 15, 100]
array = [a, b, c]
array.each do |name, age, score|
puts name
puts age
puts score
end
---------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
taro
18
80
jiro
16
70
tagosaku
16
100
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
なるほど・・・、rubyおそるべし・・・。
[each]
each_indexでインデックスによるイテレーションができる。
<ソース>
---------------------------------------------------------
char = ['a', 'b', 'c']
char.each_index do |i|
puts i
end
---------------------------------------------------------
<実行結果>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0
1
2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
each_with_indexでバリューとインデックスによるイテレーションができる
---------------------------------------------------------
char = ['a', 'b', 'c']
char.each_with_index do |c, i|
puts i
puts c
end
---------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0
a
1
b
2
c
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
eachにはこんな使い方もある
---------------------------------------------------------
a = ['taro', 18, 80]
b = ['jiro', 16, 70]
c = ['tagosaku', 15, 100]
array = [a, b, c]
array.each do |name, age, score|
puts name
puts age
puts score
end
---------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
taro
18
80
jiro
16
70
tagosaku
16
100
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
なるほど・・・、rubyおそるべし・・・。
2009年6月27日土曜日
[Ruby]シングルクォートをエスケープ
Rubyで正規表現を使ってシングルクォートをエスケープしようとした。
------------------------------
str = "I'm lovin' it"
str.gsub!(/'/, "\\'")
puts str
------------------------------
そしたらなぜかこうなった
(実行結果)
^^^^^^^^^^^^^^^^^^^^^
Im lovin' itm lovin it it
^^^^^^^^^^^^^^^^^^^^^
なぜだ・・・。意味が分からなすぎる。
いろいろ調べたけどどうしてそうなるのか分からなかった(笑)
で、結局違うやり方で
--------------------------------
str = "I'm lovin' it"
str.gsub!(/'/) do |m|
'\\' + m
end
puts str
--------------------------------
こうやったら
^^^^^^^^^^^^^^^^^^^^^^^
I\'m lovin\' it
^^^^^^^^^^^^^^^^^^^^^^^
ちゃんとできた。これで出来るならまぁいいか(妥協)
ちなみになぜシングルクォートをエスケープしたいかというと
RubyからMySQLにデータを入れるときにテキストでシングルクォートを入れたいから。
------------------------------
str = "I'm lovin' it"
str.gsub!(/'/, "\\'")
puts str
------------------------------
そしたらなぜかこうなった
(実行結果)
^^^^^^^^^^^^^^^^^^^^^
Im lovin' itm lovin it it
^^^^^^^^^^^^^^^^^^^^^
なぜだ・・・。意味が分からなすぎる。
いろいろ調べたけどどうしてそうなるのか分からなかった(笑)
で、結局違うやり方で
--------------------------------
str = "I'm lovin' it"
str.gsub!(/'/) do |m|
'\\' + m
end
puts str
--------------------------------
こうやったら
^^^^^^^^^^^^^^^^^^^^^^^
I\'m lovin\' it
^^^^^^^^^^^^^^^^^^^^^^^
ちゃんとできた。これで出来るならまぁいいか(妥協)
ちなみになぜシングルクォートをエスケープしたいかというと
RubyからMySQLにデータを入れるときにテキストでシングルクォートを入れたいから。
2009年6月24日水曜日
RubyでMySQLにアクセス
いやぁ大変だった。何も知らない状態から調べつつやるのって大変ね
無駄な手順があるかと思うけど踏んだ手順を全部書く
1, Ruby-1.9じゃだめと言われたからRuby-1.8を入れなおす
2, MySQL4.1を入れる
3, gem install mysqlでMySQL/Rubyを入れる
4, zlib.dllがないと言われるのでとって来たzlib.dllをruby/binに入れる
5, 以下のコードを動かしてみる
-------------------------------------------------------------------------------------
require 'rubygems'
require "mysql"
host = 'localhost'
user = 'root'
pass = 'rootpass'
dbname = 'test_ruby'
db = Mysql::connect(host, user, pass, dbname)
rs = db.query('select * from test_table')
rs.each do |item|
puts item[0]
end
--------------------------------------------------------------------------------------
6, 動いた!感涙・・・。
これ読んでも何も分からんね、また後で書き直そう
無駄な手順があるかと思うけど踏んだ手順を全部書く
1, Ruby-1.9じゃだめと言われたからRuby-1.8を入れなおす
2, MySQL4.1を入れる
3, gem install mysqlでMySQL/Rubyを入れる
4, zlib.dllがないと言われるのでとって来たzlib.dllをruby/binに入れる
5, 以下のコードを動かしてみる
-------------------------------------------------------------------------------------
require 'rubygems'
require "mysql"
host = 'localhost'
user = 'root'
pass = 'rootpass'
dbname = 'test_ruby'
db = Mysql::connect(host, user, pass, dbname)
rs = db.query('select * from test_table')
rs.each do |item|
puts item[0]
end
--------------------------------------------------------------------------------------
6, 動いた!感涙・・・。
これ読んでも何も分からんね、また後で書き直そう
登録:
投稿 (Atom)