%3A%20Acesso%20negado%20ao%20usu%C3%A1rio%20'root'%40'localhost'%20(usando%20senha%3A%20NO).png)
Então, no começo eu estava recebendo esse erro ao tentar criar bancos de dados para usar no phpmyadmin.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Procurei em vários lugares e um amigo meu me disse para tentar reinstalar o mysql, já que reinstalei o servidor ontem.
Então decidi reinstalar o mysql e agora não consigo nem executar o instalador sem receber este erro:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Também recebi o 'root'@'localhost'
erro ao tentar instalar um script com o banco de dados que criei. Este é o erro que recebo quando tento instalar o script: Running Centos 6
PHP 5.3.3 (o script que estou usando é Ioncubed e PHP 5.4, não preciso dele).
EDITAR:
Se você vai se perguntar por que não olho em volta primeiro, eu olhei em volta! Não estou tendo sorte em encontrar outras pessoas que tiveram o tipo de problema que eu tive.
EDITAR 2:
Instalei o MySQL com sucesso agora. Tive vontade de voltar e tentar novamente e o instalador funcionou bem. Mas ainda recebo o erro root@localhost fornecido na imagem acima. Já verifiquei se a configuração não estava magicamente usando "root"@"localhost".
Responder1
A configuração do banco de dados usa root@localhost, e essa senha foi escolhida quando você o instalou pela primeira vez. Não é a senha root do sistema. A raiz do MySQL e a raiz do sistema são contas diferentes com possíveis senhas diferentes.
Tente lembrar e tente adivinhar usando mysql -u root -p
para tentar. Se não tiver sorte, pesquise no Google como remover a configuração do MySQL e comece de novo.
Responder2
MySQL trata diferentemente "localhost" e "127.0.0.1"; o primeiro é usado para executar uma conexão de soquete Unix /var/lib/mysql/mysql.sock
ou algo assim. Portanto, você precisa de duas GRANT
instruções diferentes em sua mysql.user
tabela (pelo menos eu no OpenSuSE Linux; por exemplo, no Windows, sua milhagem pode variar):
(conexão mysql como root)
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES (*or privilege list*) ON yourdb.* TO [email protected] IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Então, é óbvio que o seu script está realmente tentando instalar como "root@localhost". Se você não pode editar o script ou a configuração do instalador, você pode resolver issotemporariamentedesabilitando senha root:
USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
...para maior segurança,não saia do mysqldepois de fazer isso. Após a conclusão da instalação, você terá que redefinir a senha do root:
GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
Isto não resolve o problema deo que o script faz após a instalação. As chances são de que isso aconteçaaindause root em localhost eaindanão use senha. Assim que você redefinir a senha, ela irá parar de funcionar. Você precisa encontrar referências para root e localhost (eles podem ser especificados separadamente) na configuração do script: deve haver algo como
user = root
host = localhost
dbname = somedb
ou talvez
'username' => 'root',
"hostaddr" => "localhost",
...
e alterá-los. Você pode criar um novo usuário no MySQL apenas emitindo uma nova GRANT
instrução.
Responder3
Em casos normais,stack_overflowé útil. No entanto, em caso de conflito de versão diferente, a senha não poderá ser redefinida com êxito. Neste caso, reinstale o mysql.Isso é o que eu conheço!!
Aqui estão os passos: 1) encontre o mysql instalado
# rpm -qa|grep mysql
2) remova o mysql
#rpm -e 'o programa'
3) exclua a lib e inclua
#rm -rf /usr/lib/mysql
#rm -rf /usr/include/mysql
4) exclua a data do mysql ou faça backup dela.
#mv /var/lib/mysql ~/mysql_backup
5)reinstalar o mysql
#yum instalar o mysql mysql-server
6) inicie o serviço mysql e experimente
#chkconfig mysqld em
#service mysqld start
#mysql -uroot -p
--nesta etapa, se a instalação for bem-sucedida, a senha deverá ser nula. basta pressionar enter e entrar no banco de dados mysql.