MySQL 액세스 거부됨(CentOS)

MySQL 액세스 거부됨(CentOS)

CentOS에 새 MySQL 서버를 설치하고 명령을 사용하여 MySQL 서버 서비스를 시작했습니다.

 # /sbin/service mysqld start

서비스를 확인해 보니 실행 중이네요.

현재 로 로그인되어 있습니다 root@localhost. 변경하고 싶은 비밀번호입니다 root. 이를 위해 나는 다음 명령을 내렸습니다.

/usr/bin/mysql_secure_installation

이 명령을 실행하자마자 비밀번호를 묻는 메시지가 표시되고 "Enter" 키를 누르려고 합니다. 이것은 작동하지 않습니다. 또한 내 Linux 루트 비밀번호를 시도했지만 작동하지 않았습니다.

Enter 키를 누르면 다음과 같은 결과가 나타납니다.

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

Linux 박스 로컬 루트 비밀번호를 사용하려고 하면 다음과 같은 메시지가 표시됩니다.

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

설치하는 동안 로컬 컴퓨터 비밀번호 root외에는 어떤 비밀번호도 묻지 않았습니다 . 내가 여기서 무엇을 놓치고 있는 걸까요? mysql-workbench에서 로그인하려면 어떻게 해야 합니까? 감사해요.

답변1

편집 /etc/my.cnf및 추가:

skip-grant-tables

그런 다음 MySQL 서비스를 다시 시작하고 로그인을 시도하십시오.

mysql

[공식 매뉴얼]도 확인할 수 있습니다:

답변2

루트 비밀번호 설정이 있을 수 있습니다. 일반적 mysql_secure_installation으로 루트로 실행해야 하며 mysql 루트 비밀번호를 입력하라는 메시지가 표시되고 Enter 키를 누릅니다.

귀하의 경우에는 루트 비밀번호가 설정된 것으로 보이며 다음을 사용하여 변경할 수 있습니다.

sudo mysqld_safe --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=/var/run/mysql/mysql.sock --datadir=/var/lib/mysql --skip-grant-tables

그러면 mysql을 시작한 다음 mysql -u rootmysql을 입력하고 루트 비밀번호를 업데이트할 수 있습니다.

mysql> use mysql; 
mysql> update user set password=PASSWORD("yournewrootpasshere") where User='root';
mysql> flush privileges;
mysql> quit

--skip-grant-tables옵션은 사용할 키이므로 비밀번호를 묻는 메시지가 표시되지 않습니다.

그 후 mysql을 정상적으로 다시 시작하면 해당 내용이 표시되며 mysql_secure_installation원하는 경우 새 루트 패스를 사용하여 다시 실행할 수도 있습니다.

새로 설치하는 것이므로 mysql 패키지를 제거하고 다시 설치할 수도 있습니다. 데이터베이스도 삭제하는 것을 잊지 마십시오.

관련 정보