사용자 'root'@ 'localhost'에 대한 MySQL 액세스가 거부되었습니다.


24

내 서버에서 MySQL에 액세스하려고 할 때마다 오류가 발생합니다.

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

내가하려고 할 때 mysqladmin -u root -p password내가 얻을

사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : YES)

Ubuntu 서버 12.04에서 MySQL에 어떻게 액세스합니까?


1
명령 행에서 비밀번호를 매개 변수로 입력하지 않도록하십시오. 다른 사용자는 프로세스 목록을 통해 비밀번호를 찾을 수 있습니다. 프로그램에 직접 입력하거나 키를 사용하는 것이 훨씬 좋습니다
Amias

구문 -p password이 잘못되었으므로 -ppassword권장되지는 않습니다. 더 많은 정보 : stackoverflow.com/questions/5131931/…
Melebius

이 페이지에서이 오류의 가능한 원인과이 오류를 해결하기위한 해결 방법을 확인하십시오. rathishkumar.in/2017/04/… . 도움이 될 수 있습니다.
rathishDBA

답변:


12

n 개의 로컬 호스트를 실행하는 경우 터미널에 아래 명령을 입력하십시오.

mysql -u root -p

외부 서버를 사용하는 경우 호스트 IP (xxx.xxx.xxx.xxx)도 입력하십시오.

mysql -hxxx.xxx.xxx.xxx -uroot -p

비밀번호를 묻는 메시지가 표시되면 비밀번호를 입력하면 MySQL 프롬프트에 액세스 할 수 있습니다.

MySQL 비밀번호를 재설정하는 방법에 대한 이 답변 을 볼 수도 있습니다.


나는 들어 왔지만 여전히 암호를 변경하거나 선택하는 방법을 모른다
user253867

내가 링크 한 대답 5.x에서 마지막에를 사용중인 MySQL 서버 버전으로 바꿔야합니다 . 5.5를 사용하고 있으므로 제 명령은sudo dpkg-reconfigure mysql-server-5.5
Parto

9
문제는 OP가을 보는 것 Access denied for user 'root'@'localhost'입니다. 전화하는 것이 좋습니다 mysql -u root -p. 이 명령의 결과는 다음과 같습니다 Access denied for user 'root'@'localhost'.
phil294

5
sudo mysql -u root -p나를 위해 작동하지만 mysql -u root -p그렇지 않습니다
Ivan Black

7

업데이트 할 때도 동일한 증상이 나타나지만 (mysql을 종료하고 --skip-grant-tables로 다시 시작한 후) 수정 프로그램을 실행하는 것이 좋습니다.

update mysql.user set plugin = '';

업데이트 프로세스는이 열을 "unix_socket"으로 설정하려고합니다. 나는 그것이 무엇을 성취 해야하는지 모르겠지만, 나를 위해 모든 것을 깨뜨립니다.


이것은 모든 것을 시도한 후 Ubuntu 16 LTS에서 내 문제를 해결합니다 .. 권한, 그룹 사용자. 고맙습니다.
onalbi

예, 강화 스크립트를 실행했으며을 mysql_socket사용하도록 설정 한 PASSWORD('xxxxxx')것이 작동하지 않도록 플러그인을 변경 했습니다.
TheVillageIdiot 2018 년

4

mysql의 비밀번호 설정

sudo dpkg-reconfigure mysql-server-5.x

이제 터미널을 열고 입력하십시오

mysql -uroot -p

비밀번호를 입력하고 Enter 키를 누릅니다


4

나는 이것으로 내 문제를 해결했다.

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

매우 책임감있게 행동하십시오. 이 솔루션을 사용하면 MySql 서버와 모든 데이터를 제거 할 수 있습니다.


나를 위해 작동하지 않습니다.
Ivan Black

!! 매우 책임감있게 행동하십시오. 이 솔루션을 사용하면 MySql 서버와 모든 데이터가 제거됩니다.
Matiss Jurgelis

4

Ulrich Metzger와 마찬가지로 내 컴퓨터를 Ubuntu 16.04 및 Mysql-server-5.7로 업그레이드 한 후 plugin열이 변경 되어 루트로 로그인 할 수 없었 습니다.

내 문제는 sudo dpkg-reconfigure mysql-server-5.7+ 제거 + 제거 + 청소로 해결되지 않았습니다 .

mysql 서비스를 중지해야했습니다.

# sudo service mysql stop

그런 다음 --no-grant-tables옵션을 사용 하여 mysql 데몬을 다시 시작하십시오 .

# sudo mysqld_safe --no-grant-tables &

그런 다음 다른 터미널에서 명령으로 mysql 콘솔 (현재 인증이 필요하지 않음)을 mysql입력하고 SQL UPDATE를 통해 비밀번호 및 플러그인 열을 업데이트하십시오.

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

마지막으로 mysqld_safe명령을 종료하고 mysql 서비스를 다시 시작한 다음 mysql에 정상적으로 연결하십시오.

# sudo service mysql start
# mysql

2

우분투 14.4LTS에서 16.4LTS로 업그레이드 한 후 mysql 루트 사용자가 mysql 사용자 테이블의 플러그인 열에 잘못 입력하여 더 이상 로그인 할 수 없습니다. 업그레이드는 root @ localhost 사용자의 플러그인 값을 auth_socket으로 설정 하지만 이전에 mysql 기본 비밀번호 암호화를 사용한 경우 올바른 항목은 mysql_native_password 이어야합니다 .


이것은 나를 위해 일한 것이며 문제의 근원 인 것 같습니다. 제거 및 재설치는 "문제"를 해결하기 위해 아무 것도하지 않습니다.
SteveFromAccounting
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.