连接到远程MySQL数据库时出现Rails4字符集问题

时间:2013-07-21 16:40:08

标签: ruby-on-rails ruby ruby-on-rails-4 mysql2

我使用下一个设置连接到远程数据库:

class MyModel < ActiveRecord::Base
self.table_name = 'users'
establish_connection(
adapter: "mysql2",
host: "host_ip",
encoding: "koi8u",
username: "custom_name",
password: "password",
database: "db_name")
end

它连接得很好但是当我查询时,我会收到类似地址的内容:“п⌠п╟п╪п╟п?п╦п?п░п╩я▄я├п╣я│я┌”< / p>

我还尝试了另一种连接变体,如:

connection = Mysql2::Client.new( host: 'host_name',                                                            
username: 'user',                                                                     
password: 'password',                                                                     
port: 3306,                                                                  
database: 'db_name',                                                              
encoding: 'koi8u',                                                                    
reconnect: true                                                                     
)

在这种情况下,我收到连接对象,但无法进行查询......当我使用时 connection.query(“SELECT * FROM users”)它返回连接对象... 此外,当我检查编码时,它返回:

MyModel.first.Address.encoding.name
MyModel Load (6.8ms)  SELECT `users`.* FROM `users` ORDER BY `users`.`login` ASC LIMIT   
1
=> "UTF-8"

在设置中我使用koi8u!

我在这个数据库中检查MySQL服务器上的字符集 - 它被设置为koi8u!

有什么想法吗?我需要使用普通字符集连接到此DB

1 个答案:

答案 0 :(得分:0)

在我看来,您的数据库区域设置与您预期的不同 你有没有改变它或在任何阶段设置它?

仅在连接字符串

中声明它是不够的

您可以在此处找到如何检查数据库字符集的内容

How do I see what character set a MySQL database / table / column is?