I'm trying to update some of our database's columns from utf8mb3 to utf8mb4, but while trying to execute the query I lose connection, because the server crashes. Are my buffers too small or is there something different wrong. The table I'm trying to update has about 132k records, and the column size is an average of 3kb.
ALTER TABLE table
MODIFY COLUMN
column longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL
;
Logs:
2024-01-29 12:23:06 0 [Warning] InnoDB: Retry attempts for writing partial data failed.
2024-01-29 12:23:06 0 [ERROR] [FATAL] InnoDB: write("ib_logfile0") returned I/O error
240129 12:23:06 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
To report this bug, see https://mariadb.com/kb/en/reporting-bugs
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Server version: 10.11.4-MariaDB-1:10.11.4+maria~ubu2004-log source revision: 4e2b93dffef2414a11ca5edc8d215f57ee5010e5
key_buffer_size=134217728
read_buffer_size=131072
max_used_connections=4
max_threads=377
thread_count=4
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 961373 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
SELECT @@global.inndb_buffer_pool_size/power(1024,3) ibpsize_GB, @@global.innodb_log_file_size innodb_log_file_size, @@global.innodb_log_buffer_size innodb_log_buffer_size;
sudo smartctl -a /dev/vda
if the operation is allowed, or to execute a corresponding command on the virtualization hypervisor on the actual storage hardware. It could also be helpful to check all logs for any error messages about the storage.