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

저는 MySQL을 처음 사용하고 Windows 데스크톱에서 WordPress를 실행하려고하는데 MySQL이 필요합니다.

Web Platform InstallerMicrosoft에서 제공하는 모든 것을 설치 합니다. 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> 

답변

1) MySQL 콘솔을 호출하여 루트 암호를 설정할 수 있습니다. 그것은에 있습니다

C:\wamp\bin\mysql\mysql5.1.53\bin 기본적으로.

디렉토리로 이동하여 MySQL을 입력하십시오. 다음과 같이 비밀번호를 설정합니다.

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

2) 루트 사용자를 위해 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;

오류 “액세스가 사용자에 대한 거부 ‘루트 @ localhost를'(사용 암호 : 아니오)”으로 설정 한 경우 해결됩니다 $cfg['Servers'][$i]['AllowNoPassword']거짓

이전에 ‘root @ localhost’의 비밀번호를 변경 한 경우 ” ‘root @ localhost’사용자에 대한 액세스가 거부되었습니다.”오류를 해결하려면 다음 두 가지 작업을 수행해야합니다.

  1. [ ‘password’]에 와 같은 빈 따옴표가 있으면 따옴표 사이에 암호를 넣으십시오.
  2. (비밀번호 사용 : NO)를 (비밀번호 사용 : YES)로 변경합니다.

이렇게하면 오류가 해결됩니다.

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


답변

OS X El 주장에서 동일한 오류가 발생했습니다. Mysql 버전 5.7. 이 단계를 실행 한 후 루트로 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.iniC : \ xampp \ mysql \ bin 경로에서 파일을 편집하기 만하면 됩니다. 다음을 추가하십시오.

skip-grant-tables

라인 사이의 라인 # The MySQL server [mysqld]port=3306 . 그런 다음 MySQL 서버를 다시 시작하십시오.

다음과 같이 보입니다.

스크린 샷


답변

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

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html


답변

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