Como configurar o MySQL para exibir datas em português

O idioma da exibição dos nomes completos dos meses, dos dias da semana ou suas abreviações, no MySQL, são controlados pela variável lc_time_names. Esta variável afeta a saída das funções DATE_FORMAT(), DAYNAME() e MONTHNAME().

A variável lc_time_names não afeta o funcionamento das funções STR_TO_DATE() ou GET_FORMAT(), no MySQL

Os nomes dos locales, definidos na variável de ambiente de sistema lc_time_names devem conter o idioma e a região geográfica, de acordo com a lista do IANA.
O valor padrão desta variável é ‘en_US’, ou seja, english_United States (inglês dos Estados Unidos). Você está aqui, provavelmente por que deseja alterar este valor para português do Brasil ou de Portugal — cada um dos dois tem um valor específico correspondente:

  • pt_PT — português de Portugal ou português europeu
  • Pt_BR — português do Brasil

select date format in mysql
Você pode ver o valor atual da variável com o uso do comando SELECT, do MySQL:

SELECT @@lc_time_names;
_
+-----------------+
| @@lc_time_names |
+-----------------+
| pt_BR           |
+-----------------+
1 row in set (0.00 sec)

… e use o comando SET para alterar a variável:

SET lc_time_names = 'pt_BR';
_

Agora, faça o teste:

SELECT DATE_FORMAT('2020-08-06', '%d de %M de %Y');
_
+---------------------------------------------+
| DATE_FORMAT('2020-08-06', '%d de %M de %Y') |
+---------------------------------------------+
| 06 de agosto de 2020                        |
+---------------------------------------------+
1 row in set (0.00 sec)

O problema desta abordagem é que ela se perde ao fechar esta sessão do MySQL.
Para tornar a configuração permanente, use GLOBAL, deste jeito:

SET GLOBAL lc_time_names=pt_BR;
_

É preciso ter privilégios administrativos, no servidor MySQL, para poder usar SET GLOBAL.

Referências: http://dev.mysql.com/doc/refman/5.7/en/locale-support.html.