Quando conecto bancos de dados MySQL no código-fonte, como código Java ou código Python. Encontro um erro que não encontro quando uso o software da ferramenta cliente MySQL para conectá-lo. A mensagem de erro é Acesso negado para o usuário 'root'@'localhost' (usando a senha:Sim) . Para resolver esse problema não é difícil, este exemplo lhe dirá como fazê-lo.
1. O motivo do acesso negado.
- O motivo desse problema é que você não concede privilégios globais ao usuário.
- Então, depois de conceder a seleção privilégio global para o usuário, o problema será corrigido.
2. Como conceder privilégio de seleção de banco de dados MySQL ao usuário.
2.1 Conceder privilégio ao usuário por meio do MySQL Workbench.
Se você usa ferramentas de cliente MySQL, como MySQL Workbench, para gerenciar o banco de dados MySQL, siga as etapas abaixo.
2.1.1 Adicionar privilégios globais.
- Abra o MySQL Workbench, clique em Usuários e privilégios item de menu no painel esquerdo.
- Clique no nome da conta de usuário no painel do meio e clique em Funções administrativas guia no painel direito.
- Em seguida, verifique o SELECIONAR caixa de seleção em Privilégios globais área.
- Clique em Aplicar botão para salvar as alterações.
2.1.2 Adicionar privilégios de esquema.
- Se você deseja executar o comando SQL em uma tabela de banco de dados de esquema especial, deve adicionar privilégios de esquema relacionados do esquema (banco de dados) à conta de usuário.
- Abra o MySQL Workbench e clique em Usuários e privilégios item de menu no painel esquerdo, clique na conta de usuário no painel do meio e clique em Privilégios de esquema guia no painel direito.
- Clique em Adicionar entrada botão para abrir a janela pop-up de seleção de esquema para selecionar o esquema desejado.
- Em seguida, marque a caixa de seleção de privilégios relacionados (por exemplo, SELECT , INSERIR , ATUALIZAÇÃO, e EXCLUIR caixa de seleção) para atribuir os privilégios à conta de usuário.
- Clique no botão Aplicar botão para salvar as alterações.
2.2 Alterar privilégio do usuário por linha de comando.
Se você deseja conceder privilégios globais ou de esquema à conta de usuário do MySQL por linha de comando, siga as etapas abaixo.
2.2.1 Conceder privilégios globais à conta de usuário por linha de comando.
- Abra um terminal e execute o comando abaixo.
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT ON *.* TO 'jerry'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
2.2.2 Conceder privilégios de esquema especial à conta de usuário.
- Abra o terminal execute abaixo do comando.
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec)