오류 1045(28000): 'root'@'localhost' 사용자에 대한 액세스가 거부되었습니다(비밀번호 사용: NO).

오류 1045(28000): 'root'@'localhost' 사용자에 대한 액세스가 거부되었습니다(비밀번호 사용: NO).

그래서 처음에는 phpmyadmin에서 사용할 데이터베이스를 만들려고 할 때 이 오류가 발생했습니다.ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

여기저기 찾아봤는데 친구가 어제 서버를 다시 설치했으니 그냥 mysql을 다시 설치해 보라고 하더군요.

그래서 mysql을 다시 설치하기로 결정했는데, 이제 이 오류가 발생하지 않고 설치 프로그램을 실행할 수도 없습니다.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

'root'@'localhost'또한 내가 만든 데이터베이스에 스크립트를 설치하려고 할 때도 오류가 발생했습니다 . 스크립트를 설치하려고 할 때 발생하는 오류는 다음과 같습니다. Centos 6 실행

여기에 이미지 설명을 입력하세요

PHP 5.3.3(내가 사용하는 스크립트는 Ioncubed이고 PHP 5.4이므로 필요하지 않습니다.)

편집하다:

왜 먼저 둘러보지 않느냐고 물으신다면 저는 둘러보았습니다! 나처럼 문제가 있는 다른 사람을 찾는 것은 운이 좋지 않습니다.

편집 2:

이제 MySQL을 성공적으로 설치했습니다. 나는 돌아가서 다시 시도하고 싶었고 설치 프로그램은 잘 진행되었습니다. 하지만 위 이미지에 제공된 root@localhost 오류가 계속 발생합니다. 구성이 마술처럼 "root"@"localhost"를 사용하고 있지 않은지 이미 확인했습니다.

답변1

데이터베이스 구성에서는 root@localhost를 사용하며 해당 비밀번호는 처음 설치할 때 선택되었습니다. 시스템의 루트 비밀번호가 아닙니다. MySQL 루트와 시스템 루트는 비밀번호가 다를 수 있는 서로 다른 계정입니다.

기억하고 mysql -u root -p시도하여 추측해 보세요. 운이 좋지 않으면 Google에서 MySQL 구성을 제거하고 새로 시작하는 방법을 검색하세요.

답변2

MySQL은 "localhost"와 "127.0.0.1"을 다르게 처리합니다. 첫 번째는 Unix 소켓 연결을 실행하는 데 사용됩니다 /var/lib/mysql/mysql.sock. 따라서 테이블 GRANT에 두 가지 다른 지침이 필요합니다 mysql.user(적어도 OpenSuSE Linux에서는 수행합니다. 예를 들어 Windows에서는 마일리지가 다를 수 있습니다).

(루트로 mysql 연결)

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;

그렇다면 스크립트가 실제로 "root@localhost"로 설치를 시도하고 있음이 분명합니다. 스크립트나 설치 프로그램 구성을 편집할 수 없는 경우 다음을 통해 작업할 수 있습니다.일시적으로루트 비밀번호 비활성화:

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

...더 큰 안전을 위해,mysql에서 로그아웃하지 마세요이 일을 한 후에. 설치가 완료되면 루트 비밀번호를 재설정해야 합니다.

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

이것은 문제를 해결하지 못합니다.설치 후 스크립트는 무엇을 합니까?. 그럴 가능성이 있다아직localhost에서 루트를 사용하고아직비밀번호를 사용하지 마세요. 따라서 비밀번호를 재설정하면 작동이 중지됩니다. 스크립트 구성에서 루트 및 로컬 호스트(별도로 지정할 수 있음)에 대한 참조를 찾아야 합니다. 다음과 같은 것이 있어야 합니다.

user = root
host = localhost
dbname = somedb

아니면 아마도

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

변경하세요. 새로운 명령문을 실행하여 MySQL에서 새 사용자를 생성할 수 있습니다 GRANT.

답변3

일반적인 경우에는스택 오버플로도움이됩니다. 단, 다른 버전과 충돌할 경우 비밀번호를 재설정할 수 없습니다. 이런 경우에는 mysql을 다시 설치해 보세요.그게 내가 만나는거야 !!

단계는 다음과 같습니다. 1) 설치된 mysql을 찾습니다.
# rpm -qa|grep mysql

2) mysql
#rpm -e 'the programe'을 제거합니다.

3) lib를 삭제하고
#rm -rf /usr/lib/mysql
#rm -rf /usr/include/mysql을 포함합니다.

4) mysql 날짜를 삭제하거나 백업하십시오.
#mv /var/lib/mysql ~/mysql_backup

5) mysql 재설치
#yum install mysql mysql-server

6) mysql 서비스를 시작하고
#chkconfig mysqld on
#service mysqld start
#mysql -uroot -p
--이 단계에서 설치가 성공하면 비밀번호는 null이어야 합니다. Enter를 누르고 mysql 데이터베이스에 들어가십시오.

관련 정보