programing

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

goodsources 2023. 2. 6. 23:27
반응형

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

고려사항:

./mysqladmin -u root -p** '_redacted_'  

출력(패스워드 입력 포함):

비밀번호 입력:

'.오류 "admin: "localhost" 입니다.
user 'rootlocalhost'(패스워드 YES)' ''@'localhost' 입니다.

어떻게 하면 고칠 수 있을까요?

제가 찾은 모든 솔루션은 필요 이상으로 복잡했고, 제게는 아무 것도 효과가 없었습니다.여기 내 문제를 해결한 해결책이 있다.mysqld를 재시작하거나 특별한 권한으로 시작할 필요가 없습니다.

sudo mysql

-- for MySQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

-- for MariaDB
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('root');

단일 쿼리로 auth_pluginmysql_native_password로 변경하고 루트 비밀번호를 root로 설정합니다(쿼리에서 자유롭게 변경 가능).

이제 root로 로그인할 수 있습니다.자세한 내용은 MySQL 설명서 또는 MariaDB 설명서참조하십시오.

(+ 또는 exit을 입력하여 MySQL 콘솔을 종료합니다.)

  1. 를 열고 편집합니다./etc/my.cnf ★★★★★★★★★★★★★★★★★」/etc/mysql/my.cnf배포에 따라 다릅니다.
  2. skip-grant-tables아래[mysqld]
  3. MySQL 재시작
  4. 명령어를 할 수 .mysql -u root -p
  5. 실행합니다.mysql> flush privileges;
  6. 새 비밀번호 설정 기준
  7. /etc/my.cnf로 돌아가서 skip-grant-tables를 삭제/댓글합니다.
  8. MySQL 재시작
  9. 비밀번호로 할 수 되었습니다.mysql -u root -p

지금까지의 답변은 모두 이 문제에 도움이 되지 않았습니다.그 때문에, 이하에 해결책을 제시하겠습니다.

관련 부품:

MySQL 5.7 이후 버전을 실행하는 Ubuntu 시스템에서는 루트 MySQL 사용자는 기본적으로 비밀번호가 아닌 auth_socket 플러그인을 사용하여 인증하도록 설정됩니다.이것에 의해, 많은 경우, 시큐러티와 조작성이 향상됩니다만, 외부 프로그램(예를 들면 phpMyAdmin)이 유저에게 액세스 할 수 있도록 할 필요가 있는 경우도, 복잡해집니다.

패스워드를 사용하여 루트로 MySQL에 접속하려면 인증방식을 auth_socket에서mysql_native_password로 변경해야 합니다.이를 수행하려면 단말기에서 MySQL 프롬프트를 엽니다.

sudo mysql

다음으로 다음 명령어를 사용하여 각 MySQL 사용자 계정이 사용하는 인증 방식을 확인합니다.

SELECT user,authentication_string,plugin,host FROM mysql.user;

산출량

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

이 예에서는 루트 사용자가 실제로 auth_socket 플러그인을 사용하여 인증을 수행하는 것을 확인할 수 있습니다.패스워드로 인증하도록 루트계정을 설정하려면 다음 ALTER USER 명령을 실행합니다.반드시 패스워드를 선택한 강력한 패스워드로 변경해 주세요.이 명령어는 스텝2에서 설정한 루트 패스워드를 변경합니다.

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

그런 다음 FLUSH PRIVICES를 실행하여 서버에 인가 테이블을 새로고침하고 새로운 변경을 적용합니다.

FLUSH PRIVILEGES;

각 사용자가 사용하는 인증 방식을 다시 확인하여 루트가 auth_socket 플러그인을 사용하여 인증되지 않음을 확인합니다.

SELECT user,authentication_string,plugin,host FROM mysql.user;

산출량

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

이 출력 예에서는 루트 MySQL 사용자가 패스워드를 사용하여 인증하고 있음을 알 수 있습니다.자신의 서버에서 이를 확인하면 MySQL 쉘을 종료할 수 있습니다.

exit

저는 이 문제를 해결하기 위해 많은 조치를 취했습니다.이 문제에 대한 가능한 해결책의 원천은 너무 많아서 말도 안 되는 것에서 의미를 걸러내기가 어렵다.드디어 여기서 좋은 해결책을 찾았습니다.

순서 1: 데이터베이스 버전 식별

mysql --version

MySQL에서는 다음과 같은 출력이 표시됩니다.

mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

아니면 마리아를 위해 이런 출력을 내거나DB:

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

실행 중인 데이터베이스와 버전은 나중에 사용할 수 있으므로 기록해 두십시오.그런 다음 수동으로 액세스할 수 있도록 데이터베이스를 중지해야 합니다.

순서 2: 데이터베이스 서버 정지

루트 비밀번호를 변경하려면 사전에 데이터베이스 서버를 종료해야 합니다.

MySQL의 경우 다음을 사용하여 이 작업을 수행할 수 있습니다.

sudo systemctl stop mysql

MariaDB의 경우:

sudo systemctl stop mariadb

순서 3: 권한 확인 없이 데이터베이스 서버 재시작

사용자 권한에 대한 정보를 로드하지 않고 MySQL 및 MariaDB를 실행하면 암호를 제공하지 않고 루트 권한으로 데이터베이스 명령줄에 액세스할 수 있습니다.그러면 모르는 사이에 데이터베이스에 액세스할 수 있습니다.

이를 수행하려면 데이터베이스가 사용자 권한 정보를 저장하는 인가 테이블을 로드하지 않도록 해야 합니다.이것은 보안상의 위험이 있기 때문에 다른 클라이언트의 접속을 방지하기 위해 네트워킹도 건너뛰어야 합니다.

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

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

이 명령어 끝에 있는 앰퍼샌드를 사용하면 단말기를 계속 사용할 수 있도록 이 프로세스가 백그라운드에서 실행됩니다.

이제 root 사용자로 데이터베이스에 접속할 수 있습니다.이 사용자는 패스워드를 요구하지 않습니다.

mysql -u root

대신 데이터베이스 셸 프롬프트가 즉시 표시됩니다.

MySQL 프롬프트

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MariaDB 프롬프트

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

이제 루트 액세스 권한이 생겼으므로 루트 암호를 변경할 수 있습니다.

순서 4: 루트 패스워드 변경

mysql> FLUSH PRIVILEGES;

이제 루트 비밀번호를 실제로 변경할 수 있습니다.

MySQL 5.7.6 이상MariaDB 10.1.20 이상의 경우 다음 명령을 사용합니다.

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

MySQL 5.7.5 이상MariaDB 10.1.20 이상의 경우 다음을 사용합니다.

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

'바꿔주세요'를 치환해주세요.new_password이치노

주의: 만약ALTER USER이치노보통 더 큰 문제를 나타냅니다.이렇게 해서 한 번 해 볼 요.UPDATE ... SET대신 루트 비밀번호를 리셋합니다.

[중요] 제 특정 문제를 해결한 구체적인 행은 다음과 같습니다.

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

그 후에 반드시 인가 테이블을 새로고침해 주세요.

어느 경우든 명령어가 정상적으로 실행되었음을 확인할 수 있습니다.

Query OK, 0 rows affected (0.00 sec)

비밀번호가 변경되었으므로 데이터베이스 서버의 수동 인스턴스를 중지하고 이전과 같이 재시작할 수 있습니다.

순서 5: 데이터베이스 서버의 통상적인 재기동

튜토리얼은 데이터베이스를 재시작하기 위해 몇 가지 단계를 더 진행하지만, 제가 사용한 것은 이것뿐입니다.

MySQL의 경우:

sudo systemctl start mysql

MariaDB의 경우 다음을 사용합니다.

sudo systemctl start mariadb

이제 다음 작업을 수행하여 새 암호가 올바르게 적용되었는지 확인할 수 있습니다.

mysql -u root -p

이제 새로 할당된 암호를 입력하라는 메시지가 표시됩니다.입력하면 데이터베이스 프롬프트에 정상적으로 액세스 할 수 있습니다.

결론

이제 MySQL 또는 MariaDB 서버에 대한 관리 액세스 권한이 복원되었습니다.선택한 새 루트 암호가 강력하고 안전한지 확인하고 안전한 위치에 보관하십시오.

다른 모든 답을 시험해 본 결과, 마침내 이렇게 되었습니다.

sudo mysql -- It does not ask me for any password

-- Then in MariaDB/MySQL console:
update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;
exit;

해결된 블로그 게시물에서 답을 찾았습니다. MySQL - 코드멘터의 오류 "사용자 'root'@'localhost에 대한 액세스가 거부되었습니다."tech (중간)

Ubuntu/Debian 사용자용

(다른 디스트리뷰션, 특히 Debian 기반의 디스트리뷰션에서도 동작할 수 있습니다.)

하여 root) (비밀번호 없음)

sudo /usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf

」를 는,--defaults-fileroot할 수 있어요./etc/mysql/debian.cnf디렉토리로 합니다.

sudo cp /etc/mysql/debian.cnf ~/.my.cnf

그 후:

sudo mysql

내 경험으로는 스도 없이 달리면 효과가 없어.명령어는 다음과 같습니다.

sudo mysql -uroot -p

Linux 를 처음 사용하는 사용자에게는 어려운 작업이 될 수 있습니다.MySQL 8로 업데이트 하겠습니다(2018-09-12 현재 사용 가능한 최신 버전은 8.0.12).

  1. "/etc/mysql/mysql.conf.d/"에서 "mysqld.cnf" 구성 파일을 엽니다.
  2. [mysql] 텍스트의 다음 줄에 skip-grant-tables를 추가하고 저장합니다.
  3. MySQL 서비스를 "sudo service mysql restart"로 재시작합니다.이제 MySQL에 인증이 필요 없습니다.
  4. mysql -u root -p로 MySQL 클라이언트(일명 mysql-shell)에 연결합니다.현재 입력할 비밀번호가 없습니다.
  5. SQL 명령 플러시 권한을 실행합니다.
  6. 지금 비밀번호를 ALTER USER 'root'@'localhost'로 재설정하여 'My New Password로 식별됩니다.
  7. 이제 정상 상태로 돌아가겠습니다. "mysqld.cnf"에서 "skip-grant-tables" 행을 삭제하고 서비스를 재시작합니다.

바로 그겁니다.

제 경우 Debian 10에서 오류는

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

(좋은 방법으로) 해결되었다

sudo mysql -u root -p mysql

나쁜 방법:

mysql -u root -p mysql

OS X의 MySQL 초기 셋업에서 root 비밀번호를 설정하기 위해 이 작업을 했습니다. 터미널을 엽니다.

sudo sh -c 'echo /usr/local/mysql/bin > /etc/paths.d/mysql'

터미널을 닫고 새 터미널을 엽니다.

다음은 Linux에서 작동하여 루트 암호를 설정합니다.

sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables

)sudo mysqld_safe --skip-grant-tables처음에는 잘 안 됐어요.하지만 두 번째 시도에서는 성공적이었습니다.)

그런 다음 MySQL에 로그인합니다.

mysql -u root

FLUSH PRIVILEGES;

이제 암호를 변경합니다.

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

MySQL 재시작:

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

MySQL Workbench에서 왼쪽 사이드바에 있는 "관리"에서 "사용자 및 권한"을 선택하고 오른쪽 섹션에서 "계정 제한" 탭을 클릭하여 최대 쿼리, 업데이트 등을 늘린 다음 "관리 역할" 탭을 클릭하여 계정에 액세스 권한을 부여할 수 있습니다.

내 위치:

  • UBUNTU 21.04

  • PHP 5.6.40-57

  • MYSQL 5.7.37

설정합시다

nano /etc/mysql/mysql.conf.d/mysqld.cnf

맨 밑에 이렇게 쓰세요

skip-grant-tables

재장전하다

service mysql restart

으-아무것도 안통했어!CentOS 7.4 머신이 MariaDB 5.5.64를 실행하고 있습니다.

YUM에서 MariaDB를 설치한 직후에 이 작업을 수행해야 했습니다.

systemctl restart mariadb
mysql_secure_installation

mysql_secure_installation 、 [ rootpassword ?root password ] " 、 「 password 」[ Y / n]/n] Y라고'y'는 'y'는 'y'는 'y'는'다른 질문들은 당신이 원하는 대로 대답하세요.

그러면 패스워드로 접속할 수 있습니다.

mysql -u root -p

그것은 살아남을 것이다.

systemctl restart mariadb

다음, 제가 ./bin/mysql_secure_installation소스 코드를 사용하여 루트 패스워드를 마법처럼 변경할 수 있었지만 다른 답변은 변경할 수 없었습니다.수입하다

do_query "UPDATE mysql.user SET Password=PASSWORD('$esc_pass') WHERE User='root';"

라고 쓰여 있다...고고쓰쓰 있있있있있SET Password=... andSET authentication_string = PASSWORD...따라서 이 버전(5.5.64)의 적절한 순서는 다음과 같습니다.

를 사용하여 합니다.mysql -u root -p( ( ( ( ( ( 、 ( ( ( ( ( ( ( 。

또는 데이터베이스를 중지하고 다음과 같이 시작합니다.

mysql_safe --skip-grant-tables --skip-networking &

mysql > 프롬프트에서:

use mysql;
select host,user,password from user where user = 'root';
(observe your existing passwords for root).
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root' AND host = 'localhost';
select host,user,password from user where user = 'root';
flush privileges;
quit;

mysqld_safe라고 합니다.마리아 데이터베이스root로 mysql -u -p 새합니다. 을 사용하다

필요한 경우 모든 루트 비밀번호를 한 번에 설정할 수 있습니다.난 이게 현명하다고 생각해.

mysql -u root -p

(login)
use mysql;
select host,user,password from user where user = 'root';
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root';
select host,user,password from user where user = 'root';
flush privileges;
quit;

모든 루트 패스워드(즉, "localhost", "127.0.0.1" 및 "::1")에 대한 갱신이 실행됩니다.

향후 RHEL 8 또는 기타 기능을 이용할 때 이 OS용으로 MariaDB를 설정한 사람이 /bin/mysql_secure_installation을 확인하는 것을 잊지 않도록 하겠습니다.

sudo를 사용하여 비밀번호를 변경합니다.

sudo mysql

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

출처: Phoenixnap - 사용자 루트 localhost에 대한 액세스가 거부되었습니다.

MacOS용 수정

  1. https://downloads.mysql.com/archives/community/에서 MySQL을 설치합니다(8.x는 최신 날짜이지만 버전이 MacOS 버전과 호환되는지 확인하십시오).

  2. 「 」의 패스워드를 합니다.root( (레트<root-password>패스워드가 됩니다.(패스워드를 잊지 마세요!)

  3. [기존 비밀번호 암호화 사용(Use Legacy Password Encryption)]옵션을 선택합니다(이 옵션을 사용했지만 강력한 비밀번호 암호화 사용(Use Strong Password Encryption) 옵션은 사용하지 않았습니다).

  4. MySQL.prefPane을 검색하여 엽니다(검색 도구 사용).

    1. [ Select
    2. 구성 파일의 선택 옵션을 클릭합니다.
      1. 선택합니다./private/etc/my.cnf
  5. 에서 새 또는 ""을 ./etc/my.cnf )vi /etc/my.cnf는 다음과 을 추가합니다

     [mysqld]
     skip-grant-tables
    
  6. 다음과 같이 mysqld를 재시작합니다.

    1. ps aux | grep mysql
    2. kill -9 <pid1> <pid2> ... 관련 의 grab MySQL grab pids)
  7. mysqld으로 재기동하다

  8. 단말기에서 다음 명령을 실행하여 옵션이 설정되어 있는지 확인합니다.

     ps aux | grep mysql
    
     > mysql/bin/mysqld ... --defaults-file=/private/etc/my.cnf ... (output)
    
  9. 합니다(예: 연결).mysql-<version>-macos<version>-x86_64MySQL my my my my my 。폴더를 을 실행합니다.ls /usr/local/폴더명을 카피합니다).

     /usr/local/mysql-<version>-macos<version>-x86_64/bin/mysql -uroot -p<root-password>
    

저와 같은 경우 이전 답변의 모든 정보가 실패하면 컴퓨터에서 모든 버전의 MySQL을 제거하고 다음 명령을 사용하여 나머지 MySQL 파일을 검색합니다.sudo find / -name "mysql" ★★★★★★★★★★★★★★★★★」rm -rf모든 파일 또는 디렉토리(프로그래밍 언어 라이브러리와 관련된 파일은 건너뜁니다).

이제 MySQL의 새로운 버전을 설치하고 즐겨보세요.NB: 모든 데이터가 손실되므로 먼저 옵션을 검토하십시오.

기본 비밀번호는 설치 시 설정되는 경우가 있습니다(설명서에 기재되어 있습니다).이것은, 다음의 커맨드로 확인할 수 있습니다.

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

충분한 권한이 없는 경우 발생할 수 있습니다.

「」라고 입력합니다.suroot 비밀번호를 입력하다

윈도:

cd \Ampps\mysql\bin:

mysql.exe -u root -pmysql

mysql 시작 후(이 mysql과 같은 셸이 표시됩니다) 다음 쿼리를 사용합니다.

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

루트 루트를 사용하여 액세스를 다시 시도합니다.

만약 당신이 저처럼 구글을 통해 이 페이지에 접속했지만, 이전의 해결방법이 하나도 작동하지 않았다면, 그것은 저의 100% 어리석음이었던 것으로 판명되었습니다.서버에 접속하지 않았습니다.일단 연결되면 모든 것이 순조롭게 진행되었다.

만약 설정을 알 수 있다면 Sequel Pro를 사용하고 있으며, NPM 패키지 mysql을 사용하여 Node와 연결을 시도하고 있습니다.(Sequel Pro를 실행하는 것 이외에는) 실제로 접속할 필요가 없다고 생각했습니다.왜냐하면 이미 어플리케이션에서 접속을 하고 있었기 때문입니다.

여기에 이미지 설명을 입력하십시오.

mysql-8 zip버전입니다.마지막으로, 로 전환했습니다.installer이치노 「 」, 「 」의 설정을 요구하는 프롬프트가 됩니다.root동작합니다.한 번 설정하면 확실히 동작합니다.

여기에 이미지 설명을 입력하십시오.

MariaDB 공식 문서에 따르면 MariaDB 10.4.3 이후에서는unix_socket인증 플러그인은 기본적으로 설치됩니다.

의 「」로 .mysql_native_password 행, " " " " "[mysqld]my.cnf 삭제:

[mysqld]
unix_socket=OFF

그런 다음 다음을 실행합니다.

mysql_install_db --auth-root-authentication-method=normal

나서 시작하세요.mysqld

이 명령어는 정상적으로 동작합니다.

mysqladmin -u root password CHANGEME

자세한 내용은 mysql_install_db를 이전 인증 방식으로 되돌리는 구성을 참조하십시오.

Mac의 Docker 데스크톱을 활용하여 5.7.35를 실행하려고 했는데 이 Docker-compose.yml 구성을 통해 다음과 같은 작업을 수행할 수 있었습니다.

특히 라인의 추가...

명령어: --default-authentication-password=syslog_password

...그게 성공했어

version: '3.3'
services:
  mysql_db:
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'your_password'
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - ~/your/volume/path:/var/lib/mysql

여러 번 시도해 본 결과, 다음과 같은 답변이 나왔습니다.

ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('root');

그리고 비슷한 대답으로, 내 단말기는 여전히 나에게 다음과 같은 오류를 던져주고 있었다.

SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 사용할 올바른 구문을 확인하십시오.

그래서 웹에서 조사한 결과, 이 행에서 문제가 해결되어 root 사용자 비밀번호를 변경할 수 있게 되었습니다.

sudo mysqladmin --user=root password "[your password]"

체크할 것은, 호스트로부터의 필터입니다.기본적으로는 "localhost"일 수 있습니다.리모트 클라이언트에서 접속을 시도하고 있습니까?이것을 "%"로 변경합니다.

여기에 이미지 설명 입력

Arch Linux의 경우

패키지: mysql 8.0.29-1

나에게 효과가 있었던 것:

  1. my은 my.cnf 입니다.일반적으로 다음 웹 사이트에서 찾을 수 있습니다./etc/mysql/my.cnf 이 을 붙입니다.skip-grant-tables파일 맨 아래/맨 끝에 있습니다.

  2. "mysql"을 합니다.sudo systemctl restart mysqld

  3. "mysql"을 합니다.sudo systemctl status mysqld

  4. 하여 "root"을 합니다.mysql -u root -p

  5. " " 를 을 플러시합니다.flush privileges;

  6. 「」에 의해서 한다.CREATE USER 'root'@'localhost' IDENTIFIED BY 'rootpassword';

  7. PHP와 이 DB를 ).CREATE USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rootpassword';

  8. 다음을 순서대로 호출하여 변경 내용이 DB에 반영되었는지 확인합니다.

    • use mysql;
    • SELECT User, password_last_changed FROM user;
  9. 하고 mysql을 삭제합니다.skip-grant-tables해 주세요)my.cnf 파일을 편집해 주세요.

  10. mysql 서비스를 재시작합니다(스텝2 및 스텝3 참조).

그리고 그게 다에요.

'-p' 인수에는 인수 이름과 값 사이에 공백이 없어야 합니다.

대신

./mysqladmin -u root -p 'redacted'

사용하다

./mysqladmin -u root -p'redacted'

아니면 그냥

./mysqladmin -u root -p

비밀번호를 입력하도록 요구됩니다.

솔루션:포기해!

내 말 끝까지 들어봐요.MySQL을 작동시키기 위해 약 이틀을 소비했지만, 항상 권한 오류가 발생했지만 이 질문에 대한 답변으로 해결되지 않았습니다.계속하다간 미쳐버릴 것 같다는 생각이 들 정도였다.

SQLite를 설치하는 명령어를 450KB만 사용하여 전송했는데, 처음부터 완벽하게 작동했습니다.

인내심이 없다면 SQLite를 사용하여 많은 시간, 노력, 어려움 및 스토리지 공간을 절약하십시오.

언급URL : https://stackoverflow.com/questions/41645309/mysql-error-access-denied-for-user-rootlocalhost

반응형