Edit: Don't use 32-bit OS or 32-bit MySQL. Use only 64-bit.
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/windows-installation.html says:
If you need tables with a size larger than 4GB, install MySQL on an NTFS or newer file system.
It's probably too much of a coincidence that your tables max out at 4GB, and that's the max file size for FAT32 filesystem.
I suggest you double-check that the filesystem where your data is stored is NTFS. Note that it is not necessarily the C: drive. Run this SQL query in the MySQL client:
SELECT @@datadir, @@innodb_data_file_path;
The datadir is the default location of most MySQL data files and log files.
If innodb_data_file_path
just names the data file, then it'll be relative to the datadir. But innodb_data_file_path
can also name a full pathname to the file, and that can be on another location that is not under the datadir.
The innodb_data_file_path
can also optionally set a max size for the global tablespace, for example if the value is like this:
ibdata1:12M:autoextend:max:4GB
See https://dev.mysql.com/doc/refman/5.7/en/innodb-init-startup-configuration.html for more information on that.
Also, individual tables can name a location that is outside the datadir, but you would probably know it if you did, because it requires an explicit option when you CREATE TABLE.
CREATE TABLE `tablename` ( ... ) DATA DIRECTORY = '/alternative/directory';
See https://dev.mysql.com/doc/refman/5.7/en/tablespace-placing.html for more information on that.