Só errou na parte do eclipse, ele é um IDE (Ambiente Integrado de Desenvolvimento em português) escrito em java e para desenvolver aplicativos java mas que tem seu "poder" estendido com plugins, como o pdt para desenvolvimento PHP. Você pode usar um ide no lugar do seu editor de texto já que ele inclui um editor e mais algumas ferramentas (variando de ide para ide) como compilador, depurador e até geradores de código. O MySQL é um sistema de gerenciamento de banco de dados.
Perdoem-me a cavalar ignorância, mas eu pensei que com html, css e afins eu já estaria de posse de tudo que é necessário para se ter um site.
Tudo bem, do meu lado - como cliente, mas e como servidor? O que acontece?
Você tem e não tem. Explico, você é capaz de montar várias paginas, que juntas formam um site, só com html e css mas você deve ter notado que o conteúdo é estático, o que você escreveu é o que vai aparacer do lado cliente, o servidor web não vai processar nada.
Vou tentar detalhar de forma clara:
Você já deve ter lido que html é uma linguagem de marcação, correto? Você usa ela para marcar um texto, tornando ele rico; coisas como: aquilo é um titulo, tem que ter letra maior; aquele outro pedaço é um paragrafo; isso é uma tabela; etc; etc. Essas marcações (assim como o texto em si) não são interpretados pelo servidor, ele só passa para o navegador do lado cliente, é ele que tem a função de transformar as marcações no que elas representam, percebeu?
O servidor disponibiliza páginas que normalmente são baixadas pelos clientes usando navegadores que por sua vez são capazes de reconhecer o que as marcações significam para mostrar de forma coerente.
Agora imagina que você montou um layout simples(cabeçalho,um menu,um lugar para o texto e um rodapé), a única diferença de uma página para outra é o texto (cabeçalho,menu e rodapé são imutáveis). Se você só usa html a saída é criar um novo arquivo, copiar o modelo e trocar o texto, nada demais né? A maior parte (pelo menos das marcações) você vai copiar e o texto, de qualquer forma, vai ter que ser escrito.
Mas isso trás problemas, em belo dia você tem quinhentas páginas e resolve mudar o layout ou precisa mudar um link que está em todas as páginas, vai lá mexer em página por página ou pensar numa forma de criar/usar um programa que faça substituições em lote... Se você só vai mudar o texto, não é melhor, salvar ele em algum lugar centralizado (como um arquivo texto/xml/banco de dados)? Ai você usa uma linguagem de programação(que vai ser executada do lado do servidor, onde estão os arquivos) para ler essa "central" e dependo da pagina ela escreve um determinado texto. Muito mais prático concorda? O conteúdo fica todo em um mesmo lugar separado do html e uma linguagem qualquer vem e junta as duas partes. O texto passa a ser gerado dinamicamente.
Esse é um exemplo básico, qualquer parte de uma página pode ser gerada dinamicamente. Hoje, poucas páginas são puramente html, qualquer servidor furreca fornece um banco de dados MySQL e PHP, fora que você não precisa necessariamente programar as páginas, existem ótimos sistemas de gerenciamento de conteúdo por ai.