Apenas para responder por que o erro ocorre e mostrar a diferença:
A) Espera
@password
para ser uma sequência de hash valor: GRANT ALL PRIVILEGES
ON `mydb` . * TO 'username'@'localhost' IDENTIFIED
BY
PASSWORD '@password';
B) Espera
@password
para ser uma string de texto simples valor: GRANT ALL PRIVILEGES
ON `mydb` . * TO 'username'@'localhost' IDENTIFIED
BY
'@password';
Onde "hash string" é o resultado de
SELECT PASSWORD('clearTextPasswd');
- veja resposta do boneco de neve
por exemplo.