Bem, se há uma opção para literalmente comprar um "bit", ou seja, transferir de um inteiro de 32 bits assinado para um inteiro de 32 bits sem sinal, as coisas continuam funcionando em 2106.
A transferência para 64 bits é "um pouco melhor". Você recebe centenas de bilhões de anos de resolução.
E o Ubuntu faz isso:
$ uname -p
x86_64
$ date --date=9090-01-01 +%s
224685532800
No entanto, esse é o nível do sistema operacional. Só porque o Ubuntu usa um inteiro de 64 bits para seus tempos não significa que o MySQL / MariaDB irá usá-lo para armazenar seus timestamps. Se as datas anteriores a 2038 forem importantes para você agora, comece a testar imediatamente.
Na verdade, posso poupar algum tempo. Ainda está quebrado. Este bug foi relatado há mais de uma década , mas seu teste principal ainda falha com um int de 64 bits.
mysql> select from_unixtime(2548990800);
+---------------------------+
| from_unixtime(2548990800) |
+---------------------------+
| NULL |
+---------------------------+
1 row in set (0.00 sec)
Isso nem é armazenamento. É um pouco patético.
(E sim, isso foi executado no MariaDB, versão 10.1)