Error memorandum
When I did rails db: migrate
, I got the following error statement. (Mysql error)
Mysql2::Error: Specified key was too long; max key length is 767 bytes
The error is The specified key is too long
.
Adding various columns to the table would exceed the key limit of 767 bytes.
This error will occur.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
I get an error because of the description ʻencoding: utf8mb4`.
Rewrite to ʻencoding: utf8`.
config/database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
I don't know the difference between utf8mb4 and utf8, but it seems that utf8mb4 can store 1 to 4 bytes and utf8 can store 1 to 3 bytes. Therefore, with utf8, pictograms etc. cannot be saved, but the capacity may increase instead. I guessed.
If you have already created the database with rails db: create
,
% rails db:drop
% rails db:create
Or
% rails db:reset
So, we need to recreate the database again.
If you have any mistakes, I would appreciate it if you could point out. Thank you for reading!
Recommended Posts