Não há restrições sobre as senhas do MySQL impostas pelo software MySQL. No que diz respeito ao banco de dados, eles podem ser o tempo que você quiser e o mais complexo que você quiser. Existem algumas ressalvas, no entanto.
Às vezes, o shell ou um script ou algo assim irá interpretar a senha antes de ser passada para o banco de dados, e se houver algum caractere especial, ele poderá ser mutilado. Por exemplo, se sua senha for "*" e você a tiver passado pela linha de comando, o shell interpretará isso como um caractere curinga e preencherá um monte de nomes de arquivos. Você pode ter que escapar de caracteres especiais como esse com uma barra invertida ("\").
Outra ressalva: se sua senha deveria incluir caracteres não-ASCII (Unicode, por exemplo), o que quer que esteja interagindo com o banco de dados tem que dizer ao banco de dados que é isso que está vindo. O MySQL assume o ASCII e geralmente tem que ser dito de outra forma.
Não tenho certeza se algum deles se aplica à sua situação. Mas imaginei que daria uma resposta para a pergunta, conforme solicitado.