2010年12月28日

Ruby on Rails MySQL 再install

MySQL再install


INDEXを貼ったら壊れた、、、
同じクエリーなのに違う結果がかえってくるようになった。。
全部データ消していれたりいろいろやったがダメなので再install

環境


MacOS 10.5.8 MacBookPro
MySQL 5.5.8
Ruby 1.9.1p378
Rails 2.3.5

削除


$ rm -rf /usr/local/mysql(このmysqlはlnでリンクされたものだと思うので同フォルだのmysql....っていうのも削除)
$ rm -rf /Library/StartupItems/MYSQLCOM
$ rm -rf /Library/PreferencePanes/MySQL.prefPane(なければ気にせず)
$ rm -rf /Library/Receipts/mysql-XXXXXXXXXXXXXX.pkg

これでmysqlの削除完了

MySQL Install


http://www.mysql.com/downloads/mysql/
上記から10.5用で32bitのをdownload(64bitだと環境設定から起動できるやつが使えなかった)

downloadしたら4つ程ファイルがあると思うので、長い名前のpkg、短いpkgとprefPaneの順で実行。
そしたら環境設定が立ち上がってボタン押せば起動できるようになります。

rails 起動


$ ruby script/server

。。。エラー
../mysql_utf8.rb:15:in `': undefined method `each' for class `Mysql::Result' (NameError)

うむ〜mysqlは起動してるんだがrailsが動かん、、

解決


$ gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
$ ruby script/server
Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)

またエラー。。。
mysql動いてるってのに、、、ふむ。。

解決


$ mysql -uroot
$ mysqladmin -uroot -p version
Server version 5.5.8
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 1 min 40 sec

お、socket見てる場所違うじゃん、という訳でlnでリンク貼っちまえばいいんでね?
$ sudo ln -s /tmp/mysql.sock /opt/local/var/run/mysql5/mysqld.sock

フォルダないときは作ってしまえばおk
これで完了
posted by RicK at 16:28| Comment(0) | TrackBack(0) | 日記