Conceder direitos ao banco de dados MySQL adicional causando problemas

Eu tenho um usuáriomyusere dois bancos de dados. 'db1'e'db2'.

'myuser'já tem direitos de usodb1 e eu queria conceder-lhe permissão adicional para usar 'db2'usando a seguinte consulta:

GRANT ALL ON db2.* TO 'myuser'@'localhost';

Depois que eu corri a declaração de concessão, 'myuser'perdeu a conexão com o primeiro banco de dados'db1'

Eu tenho medo que eu usei um nome de host errado. Em vez de 'localhost' eu deveria ter usado '%'. Quando eu faço:

 select host from mysql.user where user = 'myuser';

Agora vejo dois registros de host'%' e 'localhost'para esse usuário

Quando executo instruções SHOW GRANT, recebo permissões para hosts diferentes. 'localhost' e '%'.

mysql> SHOW GRANTS FOR 'myuser'@'localhost';
+----------------------------------------------------------------------+
| Grants for myuser@localhost                                      |
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'localhost'                       |
| GRANT ALL PRIVILEGES ON `beta_version`.* TO 'myuser'@'localhost' |
+----------------------------------------------------------------------+

e

mysql> SHOW GRANTS FOR 'myuser'@'%';
+-----------------------------------------------------------------------------------------------------------+
| Grants for myuser@%                                                                                   |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*6ASDFASDFASDF...' 
| GRANT ALL PRIVILEGES ON `myuser`.* TO 'myuser'@'%'                                                
+-----------------------------------------------------------------------------------------------------------+

O que aconteceu isso causou 'myuser'não funciona nos meus scripts PHP e no phpMyAdmin?

questionAnswers(2)

yourAnswerToTheQuestion