diff --git a/Docs/manual.texi b/Docs/manual.texi index 55da0aed968..6e372dfeb58 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -24759,6 +24759,7 @@ the paths specified here. The file sizes are specified in megabytes, hence the 'M' after the size specification above. Do not set a file size bigger than 4000M, and on most operating systems not bigger than 2000M. InnoDB also understands the abbreviation 'G', 1G meaning 1024M. +The sum of the sizes of the files must be at least 10 MB. @item @code{innodb_mirrored_log_groups} @tab Number of identical copies of log groups we keep for the database. Currently this should be set to 1. @@ -25214,7 +25215,7 @@ Thus it sets the same locks a searched SQL @code{UPDATE} would set on the rows. @node InnoDB Next-key locking, InnoDB Locks set, InnoDB locking reads, InnoDB transaction model -@subsubsection Next-key locking: avoiding the 'phantom problem' +@subsubsection Next-key locking: avoiding the phantom problem In row level locking InnoDB uses an algorithm called next-key locking. InnoDB does the row level locking so that when it searches or diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c index 3136846c450..9e10cca7200 100644 --- a/innobase/srv/srv0start.c +++ b/innobase/srv/srv0start.c @@ -608,6 +608,19 @@ innobase_start_or_create_for_mysql(void) return(DB_ERROR); } + sum_of_new_sizes = 0; + + for (i = 0; i < srv_n_data_files; i++) { + sum_of_new_sizes += srv_data_file_sizes[i]; + } + + if (sum_of_new_sizes < 640) { + fprintf(stderr, + "InnoDB: Error: tablespace size must be at least 10 MB\n"); + + return(DB_ERROR); + } + err = open_or_create_data_files(&create_new_db, &min_flushed_lsn, &min_arch_log_no, &max_flushed_lsn, &max_arch_log_no,