【发布时间】:2009-08-31 20:34:28
【问题描述】:
我有一个在 Rails 1.2.3 中完成的 web 应用程序,我刚刚将它迁移到 rails 2.2.2 并且在部署时应用程序坏了。事实证明我需要安装 MySQL gem,因为 rails 2.2.2 需要这个。
所以,我确实安装了它,但我必须使用“sudo gem install mysql -- -with-mysql-config”(根据http://brantinteractive.com/2007/02/16/getting-the-mysql-gem-installed-on-ubuntu/)安装,这似乎可以解决问题。我在 Ubuntu 6.06.2 LTS Dapper 上。
该应用仍无法在生产环境中启动。所以我启动了脚本/控制台生产,这就是返回的结果:
Loading production environment (Rails 2.2.2)
Character set 'utf8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file
/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:548:in `real_connect':Mysql::Error: Can't initialize character set utf8 (path: /usr/share/mysql/charsets/)
>>
我对这个错误进行了一些搜索,有人说我正在使用的 mysql 客户端(MySQL gem!)没有使用 UTF8 连接。我不知道如何以任何其他方式安装此 gem,以便正确安装。有什么想法吗?
【问题讨论】:
-
实际上已经安装了一个 mysql-client 库。请检查那是什么版本。还有你运行的是什么版本的 MySQL?
-
好吧,在我上面发布的那个教程链接上,我在安装 gem 之前运行了“apt-get install libmysqlclient12-dev”。在安装 gem 之前,我必须这样做。 MySQL 版本是 5.0.22。
-
您的 database.yml 中是否明确设置了语言环境?
-
是的,我在 database.yml 中将编码设置为 UTF8。
-
好的,我安装了 libmysqlclient15-dev,它删除了我已经安装的 libmysqlclient12-dev。我卸载了 gem 并使用“sudo gem install mysql --with-mysql-config”重新安装了它——现在我可以启动脚本/控制台而不会出错。我克隆了我的生产切片,所以我可以在没有太多后果的情况下进行实验。到目前为止有效!所以测试将部署回生产我的 rails 2.2.2 升级。如果有效,将报告。我不太了解 libmysqlclient12-dev vs libmysqlclient15-dev 是什么,除了它必须是最新版本。
标签: mysql ruby-on-rails ubuntu rubygems