Simon wrote:
It looks like we have reached the Max_data_length for the
dbmail_messageblks table, this is currently 4294967295 (which is 4GB
im gussing - which is about right). From the mysql docs, this can be
easliery solved by running:
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
For those who are interested, i have solved this in a different way
(thanks Mark!). The above ALTER would have taken quite an amount of time
(downtime) to solve doing it either a ALTER or dumping the data then
reimporting after the ALTER. The way i did it, only took DBMail offline
for 5 mins, have testing on development and all works with no issues
(that i can see - any other thoughts here?):
Shut down DBMail...
RENAME TABLE dbmail_messageblks TO dbmail_messageblks_part1;
CREATE TABLE dbmail_messageblks_part2 (
messageblk_idnr bigint(21) NOT NULL auto_increment,
physmessage_id bigint(21) DEFAULT '0' NOT NULL,
messageblk longtext NOT NULL,
blocksize bigint(21) DEFAULT '0' NOT NULL,
is_header tinyint(1) DEFAULT '0' NOT NULL,
PRIMARY KEY (messageblk_idnr),
INDEX physmessage_id_index (physmessage_id),
INDEX physmessage_id_is_header_index (physmessage_id, is_header)
);
CREATE TABLE dbmail_messageblks (
messageblk_idnr bigint(21) NOT NULL auto_increment,
physmessage_id bigint(21) DEFAULT '0' NOT NULL,
messageblk longtext NOT NULL,
blocksize bigint(21) DEFAULT '0' NOT NULL,
is_header tinyint(1) DEFAULT '0' NOT NULL,
PRIMARY KEY (messageblk_idnr),
INDEX physmessage_id_index (physmessage_id),
INDEX physmessage_id_is_header_index (physmessage_id, is_header)
) TYPE=MERGE UNION(dbmail_messageblks_part1, dbmail_messageblks_part2)
INSERT_METHOD=LAST;
Start DBMail with your MTA disabled and test delivery with:
echo -e "Subject: test\nFrom: [EMAIL PROTECTED] \n\n" | dbmail-smtp -u
username
Start MTA.