部署 Rails 部署中的 MySQL 中文乱码问题

jofone · 2013年05月04日 · 最后由 Rei 回复于 2013年05月22日 · 3987 次阅读

最近在做一个项目,部署时想采用 mysql 数据库,按照常规的设置: 1, database.yml

production:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: new_park
  pool: 5
  username: ******
  password: *********
  host: localhost
  socket: /var/run/mysqld/mysqld.sock

2,apache2 的 httpd.conf

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/sciencepark/RubyCode/NewPark/public
    <Directory /home/sciencepark/RubyCode/NewPark/public>
        Allow from all
    </Directory>

    RailsEnv production
    <Directory /home/sciencepark/RubyCode/NewPark/public>
        Options -MultiViews
    </Directory>
</VirtualHost>

3,使用命令:rake db:setup RAILS_ENV="production"。其中 seeds.rb 中有中文字符。

这样之后,访问网站,出现了这样的错误:We're sorry, but something went wrong.

估计是 mysql 的中文问题。

网上很多帖子介绍如何解决 mysql 的中文乱码问题,一般是在 my.cnf 文件中的 [client] 及 [mysqld] 等中添加“default-character-set=utf8”,可是我一添加,重启 mysql 后就出现'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'这样的错误! 去掉添加的内容后 mysql 可以正常启动,但中文乱码问题依旧。不知如何是好!

创建数据库的时候设置好字符集,然后再执行你的 seeds.rb

create database xxx character set utf-8

楼主的分析都是猜测,你需要查看 log 具体出了什么错误。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号