Friday, July 2, 2021

MySQL: Error Code: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB

  • ประเด็นคือ ย้าย db mysql (MariaDB) จาก Ubuntu 18.04 ไปยัง Ubuntu 20.04 (MariaDB)
  • ทำประมาณนี้ คือ mysqldump เอาเฉพาะ structure, view, function, procedure ได้ปกติ
  • พอจะ นำไฟล์โครงสร้างฐานด้วยคำสั่ง source pathfile.sql แล้ว error แบบนี้

MySQL: Error Code: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB

  • ประมาณว่า column มันเยอะเกินไปประมาณนี้

Solved

  • ไฟล์คอนฟิก MariaDB ใน Ubuntu 18.04 อยู่ที่ /etc/mysql/my.cnf แต่เราไม่ยุ่งกับมันเพราะ คอนฟิกเริ่มต้นบนเวอร์ชั่นนี้ ใช้งานได้ปกติ
  • เราต้องไปแก้ไฟล์คอนฟิก MariaDB ใน Ubuntu 20.04 จะอยู่พาธนี้ /etc/mysql/mariadb.conf.d
  • แก้ไขค่าให้เป็นประมาณนี้ (ถ้ามันไม่มีก็เพิ่มเข้าไป)

#

# * InnoDB

#

# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.

# Read the manual for more InnoDB related options. There are many!

innodb_log_file_size = 512M

innodb_strict_mode = 0

  • จากนั้น restart mariadb ด้วยคำสั่ง
  • $ service mysql restart หรือ $ systemctl restart mysql หรือ $ /etc/init.d/mysql restart

Ref

  • https://stackoverflow.com/questions/22637733/mysql-error-code-1118-row-size-too-large-8126-changing-some-columns-to-te

No comments:

Post a Comment