source

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

factcode 2022. 9. 21. 23:22
반응형

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

Ubuntu에 소프트웨어 스위트를 설치하기 위해 매뉴얼을 따르고 있습니다.MySQL에 대한 지식이 전혀 없습니다.저는 Ubuntu에 다음과 같은 설치를 했습니다.

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

그럼 내가 하지

cd ~/Desktop/iPDC-v1.3.1/DBServer-1.1
mysql -uroot -proot <"Db.sql"

결국 다음과 같은 에러 메시지가 표시되게 되었습니다.

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

어떻게 수정하고 계속 진행하면 될까요?

참고: MySQL 5.7+의 경우 이 질문에 대한 Lahiru의 답변을 참조하십시오.그것은 보다 최신 정보를 포함하고 있다.

MySQL < 5 . 7 :

루트 는 공백(빈 「」( 「」)이 아닙니다.root 로그인할 수 . 따라서 다음과 같이 로그인할 수 있습니다.

mysql -u root

설치 후 루트 비밀번호를 변경해야 합니다.

mysqladmin -u root password [newpassword]

대부분의 경우 데이터베이스로 광범위하게 작업하기 전에 개별 사용자 계정도 설정해야 합니다.

나는 이 문장을 실행함으로써 이 문제를 해결할 수 있었다.

sudo dpkg-reconfigure mysql-server-5.5

루트 패스워드가 변경됩니다.

패스워드를 리셋해야 합니다!Mac OS X(테스트 및 작동) 및 Ubuntu의 단계:

다음 방법으로 MySQL 중지

sudo service mysql stop

또는

sudo /usr/local/mysql/support-files/mysql.server stop

세이프 모드로 기동합니다.

sudo mysqld_safe --skip-grant-tables --skip-networking

(위 행이 명령어 전체)

이 명령어는 프로세스가 완료될 때까지 계속 실행되므로 다른 셸/터미널 창을 열고 비밀번호 없이 로그인합니다.

mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

@ MySQL의에서는 이 는 @IberoMedia라고 .authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

다음을 사용하여 MySQL 시작:

sudo service mysql start

또는

sudo /usr/local/mysql/support-files/mysql.server start

새 비밀번호는 'password'입니다.

주의: MySQL 버전이 5.7보다 클 경우 다음 절차를 수행합니다.

update mysql.user set authentication_string='password' where user='root';

최근에도 같은 문제가 있었습니다만, 제 경우는 패스워드는 잘 기억하고 있습니다만, 계속 같은 에러가 발생하고 있습니다.나는 많은 해결책을 시도했지만, 여전히 도움이 되지 않았다.그리고 이렇게 해봤어요.

mysql -u root -p

그 후 다음과 같은 비밀번호를 입력하도록 요구됩니다.

Enter password:

그리고 내가 사용한 비밀번호를 입력했다.그게 다예요.

비밀번호가 없을 때 발생합니다.

비밀번호를 잊어버렸을 때 변경하는 절차:

  1. MySQL Server 중지(Linux):

    sudo systemctl stop mysql
    
  2. 인가 테이블을 로드하거나 네트워킹을 활성화하지 않고 데이터베이스를 시작합니다.

    sudo mysqld_safe --skip-grant-tables --skip-networking &
    

    이백그라운드에서 할 수 .mysql -u root 요구되지 .패스워드는 요구되지 않습니다.

    다음과 같은 오류가 발생할 경우:

    2018-02-12T08:57:39.826071Z mysqld_safe Directory '/var/run/mysqld' for UNIX
    socket file don't exists.
    mysql -u root
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket
    '/var/run/mysqld/mysqld.sock' (2)
    [1]+  Exit 1
    
  3. MySQL 서비스 디렉토리를 만듭니다.

    sudo mkdir /var/run/mysqld
    

    MySQL 사용자에게 서비스 디렉토리에 쓸 수 있는 권한을 부여합니다.

    sudo chown mysql: /var/run/mysqld
    
  4. 2단계에서 동일한 명령을 실행하여 MySQL을 백그라운드에서 실행합니다.

  5. 실행합니다.mysql -u rootMySQL을 사용합니다.

    다음 명령어를 실행합니다.

    FLUSH PRIVILEGES;
    

    MySQL 5.7.6 이후의 경우

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    MySQL 5.7.5 이전 버전의 경우

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    

    ALTER USER 명령이 작동하지 않는 경우 다음을 사용합니다.

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

    종료합니다.

  6. 수동으로 시작된 인스턴스를 중지하려면:

    sudo kill `cat /var/run/mysqld/mysqld.pid`
    
  7. MySQL 재시작

    sudo systemctl start mysql
    

서버의 데이터 디렉토리가 비어 있는 경우는, 서버의 초기 기동시에 다음과 같이 됩니다.

  • 서버가 초기화됩니다.
  • SSL 증명서와 키파일이 데이터 디렉토리에 생성됩니다.
  • validate_password 플러그인이 설치되고 사용하도록 설정됩니다.
  • superuser 계정 'root'@'localhost'가 생성됩니다.슈퍼 유저의 패스워드는, 에러 로그 파일에 설정 및 보존됩니다.

이를 표시하려면 다음 명령을 사용합니다.

shell> sudo grep 'temporary password' /var/log/mysqld.log

생성된 임시 비밀번호로 로그인하여 가능한 한 빨리 루트 비밀번호를 변경하고 슈퍼 사용자 계정의 커스텀 비밀번호를 설정합니다.

shell> mysql -u root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

문제가 해결되지 않는 경우는, 패스워드를 강제적으로 변경해 주세요.

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

새 MySQL 루트 사용자 암호를 설정합니다.

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQL 서버를 중지합니다.

/etc/init.d/mysql stop

MySQL 서버를 시작하고 테스트합니다.

mysql -u root -p

다른 답변이 모두 작동하지 않고 다음 오류가 발생한 경우:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

패스워드를 리셋 할 때까지, 다음의 커맨드를 단계적으로 실행합니다.

# Stop your server first
sudo service mysql stop

# Make the MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

# If you omit (AND Host='localhost') section, it updates
# the root password regardless of its host

FLUSH PRIVILEGES;
EXIT;

# Kill the mysqld_safe process
sudo service mysql restart

# Now you can use your new password to log in to your server
mysql -u root -p

# Take note for remote access. You should create a remote
# user and then grant all privileges to that remote user

나는 이 귀찮은 문제를 발견했고 효과가 없는 많은 답을 찾아냈다.제가 발견한 최고의 솔루션은 MySQL을 완전히 제거하고 다시 설치하는 것이었습니다.재설치 시 루트 비밀번호를 설정하여 문제를 해결했습니다.

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

이 코드를 다른 곳에서 찾았기 때문에 신용을 따지지 않습니다.하지만 그것은 효과가 있다.MySQL을 언인스톨 한 후에 인스톨 하려면 , Digital Ocean의 튜토리얼이 좋다고 생각합니다.내 요지를 확인해 봐

Ubuntu에 MySQL을 설치하는 방법(작동)

Ubuntu 16.04 (Xenial Xerus)를 사용하고 있으며 MySQL 5.7을 설치하였습니다.

저도 같은 문제가 있었어요.

루트 사용자에 대한 로그인이 거부되었습니다.

다음 단계를 시도했습니다.

  1. dpkg --get-selections | grep mysql(MySQL 전 ( ( ( ( ( ( ( ( ( ( ( ().

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

-p를 사용하지 않으면 비밀번호를 묻지 않습니다.로그인하면 다음 단계를 수행하여 비밀번호를 가진 사용자를 만들 수 있습니다.

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

루트를 종료하고 위에서 지정한 <이름>에서 로그인합니다.

mysql -u <your_new_username> -p

어떤 이유에서인지 MySQL을 입력하는 것만으로 동작하지 않습니다.전혀 그렇지 않아요.사용하는 것을 습관화하는 것을 추천합니다.mysql -u <name> -p.

터미널에 다음과 같이 입력합니다.

mysql -u root -p

그러면 당신에게 비밀번호를 물어봅니다.

MySQL을 root 사용자로 설치했습니다.$SUDO

수정 방법은 다음과 같습니다.

  1. sudo cat /etc/mysql/debian.cnf

    자세한 내용은 다음과 같이 표시됩니다.

    # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

    위쪽에 비밀번호를 볼 수 있습니다.하지만 우리는 단지 프롬프트에 그것을 사용(GUx0RblkD3sPhHL5) 것입니다.

  2. u debian-sys-sys-p.

    비밀번호 입력: '

    여기서 패스워드(GUx0RblkD3sPhHL5)를 입력합니다.

  3. , 이제exitMySQL の my my my my my my my my my my my 。

    root - u 루트 -p

    비밀번호 입력: '

이제 새 암호를 입력합니다.그게 다예요.새로운 패스워드가 추가 사용을 위해 준비되어 있습니다.

그것은 나에게 효과가 있었다.

다음 공식 문서를 읽어보십시오.MySQL: 루트 패스워드를 리셋하는 방법

단말기에 액세스 할 수 있는 경우:

MySQL 5.7.6 이후:

mysql

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 이전 버전:

mysql

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

현재 답변이 작동하지 않는 사용자는 다음을 시도해 볼 수 있습니다(macOS에서 테스트됨).

mysql -h localhost -u root -p --protocol=TCP

그 후 패스워드가 요구되며 OS 사용자 패스워드를 사용해야 합니다.MySQL에 들어가면 다음을 실행할 수 있습니다.

select Host, User from mysql.user;

다음 사항을 확인해 주십시오.

MySQL [(none)]> select Host, User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

여기서 설정을 변경하고 비밀번호를 편집하거나 허가를 변경할 수 있습니다.

Mac OS X에서 mysql-5.7.12-osx10.11-x86_64.dmg를 사용하고 있습니다.

설치 프로세스에서는 루트 사용자의 임시 암호를 자동으로 설정합니다.비밀번호를 저장해야 합니다.암호를 복구할 수 없습니다.

지시에 따릅니다.

  1. ★★★★★★★★★★★★★★★로 이동cd /usr/local/mysql/bin/
  2. 임시 비밀번호를 입력합니다(예: "tsO07").JF1=>3")
  3. '이렇게 하다'가 나올 예요.mysql>★★★★★★★★★★★★★★★★★★.
  4. 뛰어요.SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');를 「 커맨드는 「root」, 「root」가 .SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. 실행합니다.ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. 실행합니다.exit
  7. 실행합니다../mysql -u root -p
  8. 비밀번호를 입력합니다.내 경우 "root"(따옴표 없음)을 입력합니다.
  9. 그게 다예요.

'를 붙여야 요."/usr/local/mysql/bin"PATH 환 path path path path path path path path path path path path 。

아무 에서나 ""를 입력할 수 ../mysql -u root -p 후 하면 "가 됩니다.mysql>★★★★★★★★★★★★★★★★★★.

그 대답은 바보같이 들릴지 모르지만, 몇 시간 동안 시간을 낭비한 후, 저는 이렇게 작동하게 되었습니다.

mysql -u root -p

에러 메세지가 표시되었습니다.

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

올바른 패스워드(MySQL을 처음 설치할 때 받는 임시 패스워드)를 입력했는데도 말이다.

패스워드 프롬프트가 깜박일패스워드를 입력했더니 맞았습니다.

도커 이미지(포트 6606 등)와 Ubuntu 설치(포트 3306 등)의 일부로 MySQL을 사용하고 있는 경우는, 포토를 지정해도 충분하지 않습니다.

mysql -u root -p -P 6606

던집니다.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

기본적으로는 localhost에 접속하려고 하기 때문에 로컬 IP 주소를 지정하면 문제가 해결됩니다.

mysql -u root -p -P 6606 -h 127.0.0.1

2021년

Ubuntu 20.04(Focal Fossa)에 대한 답변(다른 배포판도 있을 수 있음)

며칠을 헤매다가...그리고 그 대답들 중 아무 것도 나에게 효과가 없었지. 난 이렇게 했고, 효과가 있었어!

항상 Bash 쉘에:

sudo systemctl disable mysql

기동시에 데몬의 기동을 정지합니다.

sudo apt purge mysql-server

그리고.

sudo apt purge mysql-community-server*

여기서 구성 파일을 지우겠다는 경고가 표시됩니다.되고 있어!왜냐면 저들이 말썽을 부리니까!

sudo autoremove

남겨진 패키지를 모두 삭제합니다.

그런 다음(옵션일 수도 있지만 실행했습니다) 재부팅합니다.또한 MySQL 공식 웹 페이지에서 mysql-server-8.0을 다운로드했습니다.

sudo apt install mysql-server

동작하고 있는 신호는 위의 명령어를 입력하면 루트 패스워드의 입력을 요구하는 것입니다.

마지막으로:

mysql -u root -p

그리고 전에 입력한 비밀번호.

문제가 해결되지 않는 경우는, 패스워드를 강제적으로 변경해 주세요.

MySQL Server 중지(Linux):

/etc/init.d/mysql stop

MySQL Server 중지(Mac OS X):

mysql.server stop

mysqld_safe 데몬을 --skip-grant-tables로 시작합니다.

mysqld_safe --skip-grant-tables &
mysql -u root

새 MySQL 루트 사용자 암호를 설정합니다.

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQL Server 중지(Linux):

/etc/init.d/mysql stop

MySQL Server 중지(Mac OS X):

mysql.server stop

MySQL 서버 서비스를 시작하고 루트로 로그인하는 테스트를 수행합니다.

mysql -u root -p

기본적으로는 비밀번호는 null이므로 다음 절차를 수행하여 비밀번호를 변경해야 합니다.

MySQL에 연결

root# mysql

Use mysql

mysql> update user set password=PASSWORD('root') where User='root';

마지막으로 특권을 새로고침합니다.

mysql> flush privileges;
mysql> quit

딱 한 줄이면 내 문제가 해결됐어.

sudo dpkg-reconfigure mysql-server-5.5

Ubuntu 16.04(Xenial Xerus) 및 MySQL 버전 5.7.13에서는 다음 순서로 문제를 해결할 수 있었습니다.

  1. 섹션 B.5.3.2.2 루트 비밀번호 재설정: Unix and Unix-Like Systems MySQL 5.7 참조 매뉴얼의 지침을 따르십시오.

  2. #sudo mysqld_safe --init-file=/home/me/mysql-init &실패했어요.오류는 /var/log/mysql/error.log에 있습니다.

    2016-08-10T11:41:20.421946Z 0 [Note] Execution of init_file '/home/me/mysql/mysql-init' started.
    2016-08-10T11:41:20.422070Z 0 [ERROR] /usr/sbin/mysqld: File '/home/me/mysql/mysql-init' not found (Errcode: 13 - Permission denied)
    2016-08-10T11:41:20.422096Z 0 [ERROR] Aborting
    

mysql-init 파일 허가가 문제가 아닙니다.AppArmor 권한을 편집해야 합니다.

  1. 편집자sudo vi /etc/apparmor.d/usr.sbin.mysqld

     ....
       /var/log/mysql/ r,
       /var/log/mysql/** rw,
    
    
     # Allow user init file
       /home/pranab/mysql/* r,
    
       # Site-specific additions and overrides. See local/README for details.
       #include <local/usr.sbin.mysqld>
     }
    
  2. 마라sudo /etc/init.d/apparmor reload

  3. mysqld_safe를 다시 시작합니다.위의 순서 2를 시험합니다./var/log/mysql/error.log 파일을 확인합니다.오류가 없고 mysqld가 정상적으로 시작되었는지 확인합니다.

  4. 달려.mysql -u root -p

    비밀번호 입력:

    mysql-init에서 지정한 비밀번호를 입력합니다.이제 루트로 로그인할 수 있습니다.

  5. mysqld_safe 종료 기준sudo mysqladmin -u root -p shutdown

  6. mysqld를 통상적인 방법으로 시작합니다.sudo systemctl start mysql

mysqladmin을 사용한 상위 답변은 macOS v10.15(Catalina)에서 작동했지만 Ubuntu에서는 작동하지 않았습니다.그리고 MySQL의 안전한 시작을 포함하여 다른 많은 옵션을 시도했지만 아무 것도 작동하지 않았습니다.

다음 중 하나를 수행합니다.

적어도 내가 받은 버전만큼은5.7.28-0ubuntu0.18.04.4답이 부족했다IDENTIFIED WITH mysql_native_password. 5.7.28이 현재 LTS의 디폴트이므로 대부분의 새로운 시스템에서는 디폴트가 됩니다(Ubuntu 20.04(Focal Fossa) LTS가 출시될 때까지).

루트 패스워드를 설정할 수 없습니다MySQL Server를 발견하여 적용했습니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

효과가 있습니다.

제가 직면한 오류는 다음과 같습니다.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

포트의 동작에 문제가 있었습니다.

기본적으로 MySQL은 포트 3306에서 실행됩니다.

실행함으로써 그것을 확인할 수 있습니다.

  • 32비트 시스템의 경우:

    sudo /opt/lampp/manager-linux.run

  • 64비트 시스템의 경우:

    sudo /opt/lampp/manager-linux-x64.run

버튼을 클릭합니다.

XAMPP 제어판

제 경우 포트는 3307에서 실행되고 있으며 명령어를 사용하여

mysql -u root -p -P 3307 -h 127.0.0.1

이 링크에서 복사한 것처럼 같은 문제가 발생했고 이것으로 문제가 해결되었습니다.데이터베이스 비밀번호를 추가한 후 다음 비밀번호를 추가해야 합니다.-p(패스워드 기반 로그인)을 입력하고 비밀번호를 입력합니다.그렇지 않으면 다음 오류가 반환됩니다.

mysql -u root -p

저도 비슷한 문제가 있었습니다.

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

하지만 내 경우엔, 원인은 정말 어리석었다.Word 문서에서 명령어를 복사했는데, 하이픈에 ASCII 0x2D 코드가 없고 Unicode 0xE2 0x80 0x93 UTF-8 시퀀스(코드포인트 U+2013 EN DASH)가 있는 것이 문제였습니다.

잘못된 방법:

mysql -u root –pxxxx

올바른 방법:

mysql -u root -pxxxx

둘 다 같은 모양이지만 같지 않습니다(비밀번호를 바꿔서 복사하여 붙여넣기).

이런 유형의 오류가 발생할 경우 복사 및 붙여넣기 대신 명령어를 입력할 것을 권장합니다.

오류 메시지에 "PASSWORD: YES"가 표시되므로 이는 잘못된 비밀번호를 사용하고 있음을 의미합니다.저도 이런 일이 있었어요.다행히 정확한 비밀번호가 기억나서 DB 접속이 가능했습니다.

에는 MySQL이.password mysql.usertable.syslog를 클릭합니다.

때문에 실행이 합니다.ALTER USER 이 한 에 넣습니다. 아, 네, 네, 네, 네.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

init 파일(root 사용자 또는 mysql 사용자)로 실행합니다.

mysqld_safe --init-file=/home/me/mysql-init &

하고 MySQL 서버를 시작해야 .mysqld_safe.

또한 이 init 파일을 로드할 수 있는 AppArmor 권한에 문제가 있을 수 있습니다.AppArmorMySQL에서 자세히 알아보십시오.

패스워드를 않은 「 」를 합니다.mysql -uroot나한텐 효과가 있어.

Mac에서 설치 시 입력한 첫 번째 암호로 로그인하는 데 문제가 있는 경우 MySQL 프로세스를 종료하고 다시 시도할 수 있습니다.

그래서:

  1. 다음 명령을 실행하여 MySQL의 PID를 검색합니다.

    ps -aef | grep mysql | grep -v grep
    
  2. 프로세스를 종료합니다.

    kill -15 [process id]
    

다음으로 다음 명령을 사용하여 초기 비밀번호로 로그인할 수 있습니다.

mysql -uroot -p

비밀번호 입력을 요구합니다.초기 비밀번호를 입력하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/21944936/error-1045-28000-access-denied-for-user-rootlocalhost-using-password-y

반응형