programing

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

instargram 2023. 8. 5. 09:49
반응형

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

Windows 바탕 화면에서 WordPress를 실행하려고 하는데 MySQL이 필요합니다.

는 모든 을 모든것설치로 합니다.Web Platform Installer마이크로소프트에서 제공합니다.나는 MySQL에 대한 루트 비밀번호를 설정한 적이 없으며 WordPress 설치의 마지막 단계에서 MySQL 서버 비밀번호를 요청합니다.

루트의 기본 암호(있는 경우)와 변경 방법은 무엇입니까?

노력했습니다.

mysql -u root password '123'

하지만 그것은 보여줍니다:

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

이 후에 시도합니다.

mysql -u root -p

하지만 그것은 내가 가지고 있지 않은 비밀번호를 요구합니다.


업데이트: Bozho가 제안한 대로 다음을 수행했습니다.

  1. Windows 서비스에서 MySQL 서비스를 중지했습니다.

  2. 열린 CMD

  3. 위치를 c:\program files\mysql\bin으로 변경했습니다.

  4. 아래 명령을 실행했습니다.

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. 아래에서 언급한 문자 집합에 대한 경고와 함께 명령이 실행되었습니다.

  6. Windows 서비스에서 MySQL 서비스를 시작하는 경우

  7. 나는 명령 줄에 씁니다.

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. 명령줄에 다음 오류가 표시됩니다.

    Access denied for user 'root@localhost' (using password:**YES**)

어떻게 해결해야 하나요?

이러한 오류의 경우 루트 사용자에게 관리자로 새 암호를 설정하면 됩니다.다음 단계를 따릅니다.

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. mysql의 서비스/데몬 실행 중지

     [root ~]# service mysql stop   
     mysql stop/waiting
    
  2. 다음 옵션을 사용하여 권한 없이 mysql을 시작합니다.이 옵션은 MySQL의 권한 시스템을 사용하지 않고 부팅하는 데 사용됩니다.

     [root ~]# mysqld_safe --skip-grant-tables &
    

이 순간, 터미널이 멈추는 것처럼 보일 것입니다.그대로 두고, 다음 단계에서는 새 터미널을 사용합니다.

  1. mysql 명령 프롬프트 입력

     [root ~]# mysql -u root
     mysql> 
    
  2. 루트 사용자의 권한 설정을 수정합니다.

     mysql> use mysql;
     Database changed
     mysql> select * from  user;
     Empty set (0.00 sec)
     mysql> truncate table user;
     Query OK, 0 rows affected (0.00 sec)
     mysql> flush privileges;
     Query OK, 0 rows affected (0.01 sec)
     mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
     Query OK, 0 rows affected (0.01 sec)
    

*암호를 입력하지 않거나 빈 암호를 입력하지 않으려는 경우

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

결과를 확인합니다.

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. 셸을 종료하고 일반 모드에서 mysql을 다시 시작합니다.

     mysql> quit;
     [root ~]# kill -KILL [PID of mysqld_safe]
     [root ~]# kill -KILL [PID of mysqld]
     [root ~]# service mysql start
    
  2. 이제 설정한 암호로 루트 사용자로 성공적으로 로그인할 수 있습니다.

      [root ~]# mysql -u root -pYourNewPassword 
      mysql> 
    

루트 암호를 재설정할 수 있습니다.암호 없이 루트를 사용하는 것은 권장되지 않습니다.

mysql -u root -p를 사용하면 암호를 입력하고 암호를 입력합니다.

MySQL 콘솔을 호출하여 루트 암호를 설정할 수 있습니다.위치는

C:\wamp\bin\mysql\mysql5.1.53\bin

디렉토리로 이동하여 MySQL을 입력한 후 다음과 같이 암호를 설정합니다.

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

root 사용자에 대한 wamp의 phpmyadmin 응용 프로그램을 편집하여 구성할 수 있습니다.

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

참고:- 만약 당신이 xampp를 사용하고 있다면, 파일은 다음에 위치할 입니다.

C:\xampp\phpMyadmin\config.inc.php

다음과 같이 표시됩니다.

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

: 'root@localhost')에 대한 되었습니다." 오류가 했습니다.됩니다.$cfg['Servers'][$i]['AllowNoPassword']거짓으로

'root@localhost'의 암호를 변경한 경우 "Access denied for user 'root@localhost' 오류를 해결하려면 두 가지 작업을 수행해야 합니다.

  1. ['password']에 '와 같은 빈 따옴표가 있는 경우 따옴표 사이에 암호를 넣습니다.
  2. (암호 사용:아니오)에서 (암호 사용:예)

그러면 오류가 해결됩니다.

참고: phpmyadmin은 wamp와 함께 제공되는 별도의 도구입니다.MySQL에 대한 인터페이스만 제공합니다. 만약 당신이 내 sql root의 비밀번호를 변경한다면, 당신은 phpmyadmin 구성을 변경해야 합니다.일반적으로 phpmyadmin은 root 사용자로 구성됩니다.

OS X El captain에서도 동일한 오류가 발생했습니다.mysql version 5.7. 이 단계를 실행한 후 root로 mysql에 연결할 수 있었습니다.

mysql 서버 중지

sudo mysql.server stop

안전 모드에서 mysql 시작

sudo mysqld_safe --skip-grant-tables

mysqld를 사용하여 데이터베이스를 mysql로 변경하고 'root' 사용자에 대한 세부 정보를 업데이트합니다.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

그런 다음 'mysqld_safe' 프로세스를 종료하고 mysql을 정상적으로 시작합니다.루트 및 새 암호를 사용하여 mysql에 로그인할 수 있어야 합니다.자세한 내용을 보려면 SQL 문서

만 하면 됩니다.my.ini파일이 C:\xampp\mysql\bin 경로에 있습니다.추가만 하면 됩니다.

skip-grant-tables

행에줄을대의 행# The MySQL server [mysqld]그리고.port=3306그런 다음 MySQL 서버를 재시작합니다.

모양:

Screenshot

암호를 변경한 후 오류가 발생하는 정보를 보려면 다음과 같이 하십시오.

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

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

두 경우 모두 오류가 있었습니다.

하지만 중요한 것은 그 후에 저는 그것을 시도해 보았습니다.

mysql -uroot -ppassword에 대신에

mysql -u root -p password-> -uroot와 -ppassword 사이에 공백이 있으므로 문제가 발생하면 이 방법을 시도할 수 있습니다.

MySQL 서비스가 컴퓨터에서 실행 중인지 확인한 다음 MySQL의 지침에 따라 루트를 처음 설정합니다('윈도우'를 검색하면 루트 설정 단계로 이동합니다).

초기 MySQL 계정 보안

사용자 계정 'root'에 지정된 암호가 유효하지 않거나 올바른 암호로 데이터베이스 서버에 연결하지 못했습니다.라는 오류가 발생할 경우 다른 해결 방법은 다음과 같습니다.

•Windows 레지스트리에서 HKCU\Software\Microsoft에서 mysql_pwdreg 키를 삭제합니다.\웹 플랫폼설치 프로그램

• MySQL의 이전 버전을 제거합니다.NET 커넥터

•최신 MySql을 다운로드하여 설치합니다.NET 커넥터.

  1. 를 암변경위에서 합니다.config.inc.php에 있는C:\xampp\phpMyAdmin.
  2. mysql -u root -p명령 프롬프트에 표시됩니다.
  3. 암호를 입력하라는 메시지가 표시됩니다. 트한암입다니에서 합니다.config.inc.php.

코드에서 'root'서버 사용자 이름과 서버 암호로 바꿉니다.예를 들어, http://www.example.com 서버에 DB와 php 파일이 있는 경우 사용자 이름과 암호를 사용하여 이 서버 사이트에 들어가야 합니다.

MySQL 5.7용.다음 단계는 다음과 같습니다.

MySQL 서버를 완전히 중지합니다.이 작업은 MySQL 서비스를 중지할 수 있는 Windows XP 및 Windows Server 2003의 Services 창에 액세스하여 수행할 수 있습니다.

실행 창에서 "cmd"를 사용하여 MS-DOS 명령 프롬프트를 엽니다.내부에서 C:와 같은 MySQL bin 폴더로 이동합니다.cd 명령을 사용하여 \MySQL\bin.

명령 프롬프트에서 mysqld.exe -u root --skip-grant-tables 명령을 실행합니다.

현재 MS-DOS 명령 프롬프트를 그대로 유지하고 새 MS-DOS 명령 프롬프트 창을 엽니다.

C:와 같은 MySQL bin 폴더로 이동합니다.cd 명령을 사용하여 \MySQL\bin.

mysql을 입력하고 Enter 키를 누릅니다.

이제 MySQL 명령 프롬프트가 작동합니다.use mysql을 입력하여 "mysql" 데이터베이스로 전환합니다.

다음 명령을 실행하여 암호를 업데이트합니다.

update user set authentication_string=password("1111')), 여기서 user='root';

Wamp 설치나 root 사용자의 비밀번호 옵션 변경으로 인해 발생하는 경우가 있습니다.권한 -->root(사용자)을 사용한 다음 암호 옵션을 NO로 설정하여 암호 없이 실행하거나 암호를 설정하여 응용 프로그램에서 사용할 수 있습니다.

XAMPP로 .C:\xampp\phpMyAdmin그 다음에 열립니다.config.inc.php찾아내다$cfg['Servers'][$i]['password'] = ''줄을 서서 비밀번호를 입력합니다.

포트를 비표준 포트로 변경한 경우 다음과 같이 지정해야 합니다.

$connection = mysqli_connect('localhost:3308', 'root', '', 'loginapp');

그것은 보안상의 이유로 발생합니다.

다음과 같이 시도해 보십시오.

mysql -u root -p    

Enter 키를 클릭하고 암호를 입력한 후 다시 시도합니다.

루트 계정이 존재하지만 암호가 없는 경우, 암호를 사용하지 않고 서버에 루트로 연결한 다음 암호를 할당합니다.이것이 제가 이 문제를 만났을 때의 저의 상황이었습니다.

비밀번호를 사용하지 않고 루트로 서버에 연결:

$> mysql -u root --skip-password

암호 할당:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

저는 이런 식으로 제 문제를 해결할 수 있었습니다.이것이 앞으로 비슷한 문제에 직면하는 사람에게 도움이 되기를 바랍니다.건배!

참조: https://dev.mysql.com/doc/refman/8.0/en/default-privileges.html

이는 사용자에게 액세스 권한이 없음을 의미합니다.이 문제는 다음과 같은 방법으로 해결할 수 있습니다.

호스트가 "%"로 설정되어 있는지 확인합니다.

 insert into mysql.user (Host, User, Password) VALUES ('%', 'root', password('setyourpasswordhere'));
    GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

또는 SQL 워크벤치를 사용하는 경우 아래에 사용자를 생성할 수 있습니다.

Administration --> 사용자 및 권한 --> Add account 버튼을 클릭하고 호스트를 %로 하는 새 사용자를 만들고 Administrative 역할, 스키마 권한 탭에서 권한을 부여합니다.

enter image description here

mysqladmin -u root -p password

를 입력합니다.current password

그리고나서

를 입력합니다.new password

언급URL : https://stackoverflow.com/questions/74288613/maria-db-error-1045-28000-access-denied-for-user-rootlocalhost-using-pa

반응형