mysql - 为什么我的表的编码错误?

标签 mysql ruby-on-rails utf-8 utf8mb4

我正在使用 Rails 5 和 MySQL 5.7。我的database.yml中有以下内容:

default: &default
  adapter: mysql2
  pool: 5
  encoding: utf8mb4
  charset: utf8mb4
  collation: utf8mb4_unicode_ci
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: [...]
  username: [...]
  password: [...]

我运行rake db:reset来重新创建我的数据库,然后运行show create table users,我看到CREATE TABLEusers ([...])引擎=InnoDB默认字符集=utf8

为什么我的 CHARSET=utf8 以及如何修复它(使其等于 utf8mb4)?谢谢。

最佳答案

rake db:reset 是错误的。 rake db:drop && rake db:create && rake db:migrate 正确。

重置刚刚从已存储的架构创建了表,该架构具有错误的字符集和排序规则。但是从迁移中重新创建它们会使用新的字符集和排序规则创建它们。

关于mysql - 为什么我的表的编码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964508/

相关文章:

Mysql查询生成

php - 为什么上传图片失败

ruby-on-rails - 安装 pg gem;错误 : Failed to build gem native extension

ruby-on-rails - find_by函数即使成功也不会成功

windows - 如何使用 go 在 Windows 控制台中正确输出字符串?

java - 一个 21 字节的 UTF-8 序列如何来自 5 个字符?

php mysql 包装器类 __destruct 方法无法关闭数据库

mysql - 编译 MariaDB Connector v1.0.5 和/或 Mysql Connection v 5.3.4

ruby-on-rails - 如何对使用 attr_encrypted gem 加密的字段进行排序

mysql - phpmyadmin 将 csv 从 unicode 导入到 utf8