Estou enfrentando problemas com o usuário não root / admin do mysql, estou seguindo as etapas abaixo para criar o usuário e seus privilégios, corrija-me se eu estiver fazendo algo errado,
Estou instalando mysql
em RHEL 5.7 64bit
, pacotes são mencionados abaixo, uma vez que eu fiz o rpm install
que somos
- criando mysql db usando
mysql_install_db
, então - iniciar o serviço mysql então
- usando
mysql_upgrade
também estamos fazendo no servidor.
Após este processo, consigo fazer login como, root
mas com um usuário não root, não consigo fazer login no servidor:
[root@clustertest3 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-5.5.21-1.rhel5
MySQL-server-advanced-5.5.21-1.rhel5
[root@clustertest3 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Nov 30 11:09 /var/lib/mysql/mysql.sock
mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)
Este é o problema que estou enfrentando, existe alguma solução para isso?
mysql
mysql-error-1045
user3061726
fonte
fonte
SELECT * FROM mysql.user
Respostas:
Não conceda todos os privilégios sobre todos os bancos de dados a um usuário não root, não é seguro (e você já tem "root" com essa função)
Esta instrução cria um novo usuário e concede privilégios selecionados a ele. IE:
Dê uma olhada na documentação para ver todos os privilégios detalhados
EDITAR: você pode procurar mais informações com esta consulta (faça login como "root"):
Para ver o que aconteceu
fonte
Se você estiver se conectando ao MySQL usando uma máquina remota (Exemplo de workbench) etc., use as seguintes etapas para eliminar este erro no sistema operacional onde o MySQL está instalado
Tente fazer login na instância MYSQL.
Isso funcionou para mim para eliminar esse erro.
fonte
Experimentar:
Ou ainda melhor usar:
mysql_setpermission
para criar o usuáriofonte
%
que deve funcionar para todos os hosts, não está resolvendo. Portanto, especificandolocalhost
isso deve funcionar. Se isso NÃO funcionar, algo está errado no mysqlParece que você está tentando tornar um usuário 'golden' @ '%', mas um usuário diferente com o nome de 'golden' @ 'localhost' está atrapalhando / tem precedência.
Faça este comando para ver os usuários:
Você deve ver duas entradas:
1) usuário = dourado, host =%
2) usuário = dourado, host = localhost
Faça estes comandos:
Reinicie o MySQL Workbench.
Em seguida, execute seus comandos originais novamente:
Então, quando você tentar fazer login no MySQL, digite assim:
Clique em 'Testar conexão' e digite sua senha 'senha'.
fonte
Primeiro criei o usuário usando:
Depois de pesquisar no Google e ver isso , atualizei a senha do usuário usando:
e eu poderia me conectar depois.
fonte
Para qualquer pessoa que deu todos os conselhos, mas o problema ainda persiste.
Verifique o procedimento armazenado e visualize DEFINERS. Esses definidores podem não existir mais.
Meu problema apareceu quando mudamos o host curinga (%) para IP específico, tornando o banco de dados mais seguro. Infelizmente, há algumas visualizações que ainda usam 'user' @ '%', embora 'user' @ '172 ....' seja tecnicamente correto.
fonte
Eu também tenho o problema semelhante, e mais tarde descobri que é porque eu mudei meu nome de host (não
localhost
).Portanto, resolvo o problema especificando o
--host=127.0.0.1
fonte
Certifique-se de que o usuário tenha uma entrada localhost na tabela de usuários. Esse era o problema que eu estava tendo. EX:
fonte
Da maneira que você cria seu usuário, o MySQL interpreta de uma maneira diferente. Por exemplo, se você criar um usuário assim:
O MySQL espera que você dê algum privilégio usando
grant all on <your_db>.* to user01;
Não se esqueça de
flush privileges;
Mas, se você criar um usuário assim (passando um endereço IP), você deve alterá-lo para:
então, para dar alguns privilégios você tem que fazer isso:
fonte
No meu caso, o mesmo erro aconteceu porque eu estava tentando usar o mysql digitando apenas "mysql" em vez de "mysql -u root -p"
fonte
conecte seu servidor a partir do mysqlworkbench e execute este comando-> ALTER USER 'root' @ 'localhost' IDENTIFICADO POR 'sua senha';
fonte
Para pesquisas irritantes, chegar aqui depois de pesquisar esta mensagem de erro:
O problema para mim era não colocar a senha entre aspas. por exemplo. Eu precisava usar em
-p'password'
vez de-ppassword
fonte
Apenas adicione o nome do computador em vez de 'localhost' no nome do host ou endereço do MySQL Host.
fonte