ERROR 1045 (28000): Acesso negado para o usuário 'root' @ 'localhost' (usando a senha: NO)

2

Então no começo eu estava recebendo este erro ao tentar criar bancos de dados para uso no phpmyadmin. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Eu olhei em vários lugares e um amigo meu me disse para tentar reinstalar o mysql desde que eu reinstalei o servidor ontem.

Então eu 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)

Eu também recebi o erro 'root'@'localhost' ao tentar instalar um script com o banco de dados que criei. Este é o erro que recebo quando tentei instalar o script: Correndo Centos 6

PHP5.3.3(OscriptqueestouusandoéIoncubed,eoPHP5.4,eunãoprecisodisso).

EDITAR:

Sevocêvaiquestionarporqueeunãoolhoemvoltaprimeiro,euolheiemvolta!Eunãoestoutendosorteemencontraroutrosquetiveramotipodeproblemaqueeutive.

EDIT2:

InstaleioMySQLcomsucessoagora.Eusentivontadedevoltaredaroutrachanceeoinstaladorcorreubem.Masaindarecebooerroroot@localhostfornecidonaimagemacima.Eujáverifiqueiseaconfiguraçãonãoestavamagicamenteusando"root" @ "localhost".

    
por Travis 03.12.2013 / 07:49

3 respostas

1

A configuração do banco de dados usa root @ localhost, e essa senha foi escolhida quando você a instalou pela primeira vez. Não é a senha de 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 começar de novo.

    
por 03.12.2013 / 08:24
0

O MySQL trata de forma diferente "localhost" e "127.0.0.1"; o primeiro é usado para executar uma conexão de soquete Unix em /var/lib/mysql/mysql.sock ou qualquer outra coisa. Portanto, você precisa de duas instruções GRANT diferentes na sua tabela mysql.user (pelo menos 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 seu script está realmente tentando instalar como "root @ localhost". Se você não puder editar o script ou a configuração do instalador, você poderá trabalhar com isso temporariamente desativando a senha do root:

USE mysql;
UPDATE user SET Password = NULL WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

... para maior segurança, não efetue logout do mysql depois de fazer isso. Após a conclusão da instalação, você precisará redefinir a senha de root:

GRANT ALL PRIVILEGES ON mysql.* TO root@localhost IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

Isso não resolve o problema de o que o script faz depois de instalar . As chances são de que ainda use root no localhost, e ainda não use senha. Então, assim que você redefinir a senha, ela irá parar de funcionar. Você precisa encontrar referências ao root e ao localhost (elas podem ser especificadas separadamente) na configuração do script: deve haver algo como

user = root
host = localhost
dbname = somedb

ou talvez

'username' => 'root',
"hostaddr" => "localhost",
...

e altere-os. Você pode criar um novo usuário no MySQL apenas emitindo uma nova instrução GRANT .

    
por 03.12.2013 / 08:59
0

Em casos normais, stack_overflow é útil. No entanto, em caso de conflito de versão diferente, a senha não pode ser redefinida com êxito. Neste caso, por favor reinstale o mysql. É isso que eu encontro !!

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 biblioteca & include; #rm -rf / usr / lib / mysql
#rm -rf / usr / include / mysql

4) delelte a data do mysql ou faça o backup dela.
#mv / var / lib / mysql ~ / mysql_backup

5) reinstalar o mysql
#yum install mysql mysql-server

6) inicie o serviço mysql e experimente-o | #chkconfig mysqld no
#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.

    
por 01.07.2014 / 17:42