Não, você não precisa uma chave primária para fazer uma tabela funcionar no MySQL. Dito isso, uma chave primária permite que um valor exclusivo se refira a uma linha em uma tabela de outra tabela ou em qualquer código usando a tabela.
Você precisa de uma chave primária para fazer uma tabela funcionar bem no MySQL embora. Os índices (dos quais a chave primária é uma) permitem que o MySQL pesquise em subconjuntos pequenos e altamente otimizados da tabela para processar relacionamentos e pesquisas. Em geral, todos os campos que você usa em um
WHERE
cláusula ou uso para vincular duas tabelas devem ser indexados.