Home > 技術 > Mac OS X LeopardでRailsとMySQL連携で文字化けする場合の対処

Mac OS X LeopardでRailsとMySQL連携で文字化けする場合の対処

Mac OS X LeopardでRailsで遊べる環境を構築するまでで環境構築までは終わったんですが、次は文字化けに悩まされるハメに・・・

やっとのことで解決しました!

Rails側の文字コード設定

database.yml

development:
  adapter: mysql
  database: railsTest
  username: root
  password: 19805525
  timeout: 5000
  host: localhost
  encoding: utf8 ←ここです
  socket: /tmp/mysql.sock

application.rb

class ApplicationController < ActionController::Base
  # Pick a unique cookie name to distinguish our session data from others'
  session :session_key => '_bookTest_session_id'
  before_filter :set_charset
  private
  def set_charset
    headers["Content-Type"] = "text/html; charset=UTF-8"
  end
end

environment.rb

1行目に

$KCODE = "UTF8"

MySQL側の文字コード設定

■文字コードを設定する

/etc/my.cnf を編集する。

[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

via: MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活

ボクは/etc/my.cnfがなかったので以下の手順を踏んだ。

■/etc/my.cnfが無いとき

インストールしたMySQLの中のサンプルをコピーする。

# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

 再起動して有効になる。

via: MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活

この状態で

sudo /usr/local/mysql/bin/mysql -u root -p railsTest

でMySQLにログインし、
mysql > status
で以下が表示されるようになる。

30BF30FC30DF30CA30EB 2014 mysql 2014 80�4

また、
mysql > show variables like 'char%';
で以下のようにUTF-8だらけになればよい。

30BF30FC30DF30CA30EB 2014 mysql 2014 80�4


実はDatabaseを作成するときの文字コード指定を間違えていっこうに
db characterset : latin1
になったままになってハマってしまった。

これだと上記の手順をすべて踏んでも文字化けが解消されなかった。
なので、ちゃんとカラムを作成するときも以下のように文字コードを指定する必要がある。

localhost / localhost / railsTest / books | phpMyAdmin 2.11.6
あとRailsなのでidカラムにはオートインクリメントを付けること。
これもさっきすごいハマってしまった。

またmy.cnfのパーミッションは気をつけないと永遠にハマる可能性がある。
ボクは初め問答無用で
chmod 777 /etc/my.cnf
ってしてたんだけど、これだとMySQLを実行した際にignoredって表示されて無視されてしまった。

以下の記事で解決した。


chown mysql:mysql my.cnf

chmod 600 my.cnf


が正解です。my.cnf は

mysqld_safe が 動作する際に mysqlユーザーのみ参照できればいいわけで。mysqlユーザーがオーナーであれば 600 でいいわけです。そうすれば、world-writable にならずに済みます。


via: Eriane ver 0.6.1 » 忙しい・・・

本日はハマりまくりな1日でした〜。
疲れた・・・w

■参考リンク
sunadaaの日記 : my.cnfを無視させないようにする - livedoor Blog(ブログ)
文字化け対策のためのあれこれ | Katawara.*
MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/998
Listed below are links to weblogs that reference
Mac OS X LeopardでRailsとMySQL連携で文字化けする場合の対処 from HouseTect, JavaScriptな情報をあなたに

Home > 技術 > Mac OS X LeopardでRailsとMySQL連携で文字化けする場合の対処

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top