読者です 読者をやめる 読者になる 読者になる

Sinatraのあらかると

記録することで、環境構築で悩まない。

Rails3でデータベースをmysqlにするには。

いろいろ試していて、昨日眠る前に成功したので記録。


まず、mysql5.1.57.dmgをダウンロード。
MySQL::Download MySQL...」
http://dev.mysql.com/downloads/mysql/5.1.html
なぜ、macportから入れないかは、エラーを治せないので省略。


dmgファイルを開き、インストール。
そして次に
次に、パスワードを設定。


MacOSX サーバ稼業」
http://earlybirds.ddo.jp/namahage/inegalog/article.php?id=8
を参考に設定。


「Rails3で作るオリジナルブログ」
http://a-newcomer.heroku.com/diaries/6
にあるコマンド、


rails new example --database=mysql


でexampleファイルを作成。
config/database.ymlにあるパスワードを設定する。


そのときにパスワードの数字を'00000000(パスワードの数字)'
(シングルクォート)でくくる。


次にるびまにある記事、


mysql -u root -p


で起動して、

  • >create database example;
  • >use example
  • > create table topics (
  • > id int unsigned not null auto_increment,
  • > primary key (id));

ERROR 1049 (42000): Unknown database'example_development'
とエラーがでたときもexampleと同様に作成。


そしてexampleのGemfileにgem mysql2も含んでおく。
bundle updateして環境が更新できたら、
mysqlにやっとつなげました。

追記:MySQLを設定するmy.cnfをどうやってコピるんだろうって悩んでました。「Mac OS X v10.5 で web アプリ開発」
http://d.hatena.ne.jp/sky-walker/20090106/1231255210
を参考に、

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
を実行して、
cd /etc/
でフォルダへ移動して、
sudo emacs my.cnf
で編集可能でした。sudoつけないと編集できなかったのが難点。

追記:UTF-8文字コードを指定したい。
ほかの関係サイトだとdatabaseとserverがLatin1になる。
どうすればいいーって調べていたら、
「もし文系学生がプログラミングを始めたら」
http://d.hatena.ne.jp/koyonote/20110427/1303834054
を参考にMySQLの日本語設定まとめより、


[client]
port = 3306
socket = /opt/local/var/run/mysql5/mysqld.sock
[mysqld]
port = 3306
socket = /opt/local/var/run/mysql5/mysqld.sock
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

character-set-server = utf8
(↑これと)
#default-character-set = utf8
#skip-character-set-client-handshake
#server-id = 1

[mysqldump]
quick
max_allowed_packet = 16M
default-character-set = utf8
(↑これと)
[mysql]
no-auto-rehash
default-character-set = utf8
(↑これ)
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

をmy.cnfに追加すると設定完了。
各項目ごとに足りない部分だけを追加します。
ありがとうございます。なんとかなりました。
m(_ _)m。

追伸:後日、mysql5.5にアップグレードしようとしたら、socketエラーになり、serverが立ち上がらない状態でしたが、mysqlを入れ直して回復しました。起動を確認してから、文字コードあたりをutf-8に設定し直しました。

Copyright © 2007-2017 Takayuki Kamiyama. All Rights Reserved.