내 서버에서 MySQL에 액세스하려고 할 때마다 오류가 발생합니다.
사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (비밀번호 사용 : NO).
내가하려고 할 때 mysqladmin -u root -p password
내가 얻을
사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : YES)
Ubuntu 서버 12.04에서 MySQL에 어떻게 액세스합니까?
내 서버에서 MySQL에 액세스하려고 할 때마다 오류가 발생합니다.
사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (비밀번호 사용 : NO).
내가하려고 할 때 mysqladmin -u root -p password
내가 얻을
사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : YES)
Ubuntu 서버 12.04에서 MySQL에 어떻게 액세스합니까?
답변:
n 개의 로컬 호스트를 실행하는 경우 터미널에 아래 명령을 입력하십시오.
mysql -u root -p
외부 서버를 사용하는 경우 호스트 IP (xxx.xxx.xxx.xxx)도 입력하십시오.
mysql -hxxx.xxx.xxx.xxx -uroot -p
비밀번호를 묻는 메시지가 표시되면 비밀번호를 입력하면 MySQL 프롬프트에 액세스 할 수 있습니다.
MySQL 비밀번호를 재설정하는 방법에 대한 이 답변 을 볼 수도 있습니다.
5.x
에서 마지막에를 사용중인 MySQL 서버 버전으로 바꿔야합니다 . 5.5를 사용하고 있으므로 제 명령은sudo dpkg-reconfigure mysql-server-5.5
Access denied for user 'root'@'localhost'
입니다. 전화하는 것이 좋습니다 mysql -u root -p
. 이 명령의 결과는 다음과 같습니다 Access denied for user 'root'@'localhost'
.
sudo mysql -u root -p
나를 위해 작동하지만 mysql -u root -p
그렇지 않습니다
업데이트 할 때도 동일한 증상이 나타나지만 (mysql을 종료하고 --skip-grant-tables로 다시 시작한 후) 수정 프로그램을 실행하는 것이 좋습니다.
update mysql.user set plugin = '';
업데이트 프로세스는이 열을 "unix_socket"으로 설정하려고합니다. 나는 그것이 무엇을 성취 해야하는지 모르겠지만, 나를 위해 모든 것을 깨뜨립니다.
mysql_socket
사용하도록 설정 한 PASSWORD('xxxxxx')
것이 작동하지 않도록 플러그인을 변경 했습니다.
나는 이것으로 내 문제를 해결했다.
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 서버와 모든 데이터를 제거 할 수 있습니다.
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
우분투 14.4LTS에서 16.4LTS로 업그레이드 한 후 mysql 루트 사용자가 mysql 사용자 테이블의 플러그인 열에 잘못 입력하여 더 이상 로그인 할 수 없습니다. 업그레이드는 root @ localhost 사용자의 플러그인 값을 auth_socket으로 설정 하지만 이전에 mysql 기본 비밀번호 암호화를 사용한 경우 올바른 항목은 mysql_native_password 이어야합니다 .