Conceder direitos ao banco de dados MySQL adicional causando problemas
Eu tenho um usuáriomyuser
e 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?