You haven’t read the documenation, have you?
Every database has its own unique set of types of fields. Sometimes the names of the types match and somtimes they don’t.
In MySQL, you have various types of text types
CHAR(m) m is the number of bytes you give it when you create it (byte=character in this case). Max 255
BINARY(M) m is the number of bytes for the binary string. Max 255
VARCHAR(M), VARBINARY(M), Again, m is the number of bytes. The difference here is that these types only take the amount of space the need. They are VARiable.
They take length_of_string +1 if the string is less than 255 characters, or length_of_string +2 if it is longer than 255
TINYBLOB, TINYTEXT. They will take length_of_string+1 as long as is under 2 powered 8
BLOB, TEXT They will take length_of_string+2 as long as is under 2 powered 16
MEDIUMBLOB, MEDIUMTEXT They will take length_of_string+3 as long as is under 2 powered 24
LONGBLOB, LONGTEXT They will take length_of_string+4 as long as is under 2 powered 32
ENUM(‘value1’, ‘value2’…) 1 or 2 bytes, depending on the number of enumeration value
SET(‘value1’,‘value2’…) 1, 2, 3, 4, or 8 bytes, depending on the number of set members
As you can see, you’ll do fine with VARCHAR or CHAR just for the ingredients.
May want something like TEXT for the recipe itself, which will give you a max of 65,536 bytes. That’s the equivalent of a couple of pages.
But, if uncertain, go for MEDIUMTEXT
You can always test with the longest recipe that you can find