[mysql] aplica-se ao cliente de linha de comando mysql - [mysql e opções do cliente]
[cliente] aplica-se a todos os clientes conectados (incluindo mysql cli) - [opções mysql e cliente]
[mysqld] aplica-se ao servidor mysql - [opções do servidor]
[mysqldump] aplica-se ao utilitário de mesmo nome - [opções do mysqldump]
...etc
A diferença entre o (-) e o (_) é o contexto em que é usado.
(-) é usado em parâmetros de linha de comando, onde (_) é usado em parâmetros de arquivo de opções.
Você pode ver mais nos documentos:http://dev .mysql.com/doc/refman/5.5/en/option-files.html