본문 바로가기
other/linux

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

by seohan1010 2025. 12. 30.

 

방법 1.

#mysql 정지 
sudo systemctl stop mysql

#권한 체크 우회 
sudo mysqld_safe --skip-grant-tables --skip-networking &

#접속 
mysql

#계정 생성 방식 재설정 
ALTER USER 'root'@'localhost'
  IDENTIFIED WITH auth_socket;
FLUSH PRIVILEGES;

#mysql 재실행 
sudo pkill mysqld
sudo systemctl start mysql


방법 2.

#mysql 정지 
sudo systemctl stop mysql
sudo pkill mysqld 2>/dev/null || true

#/run/mysqld 확인 
sudo mkdir -p /run/mysqld
sudo chown mysql:mysql /run/mysqld
sudo chmod 755 /run/mysqld

#mysql을 권한무시 모드로 실행 
sudo -u mysql /usr/sbin/mysqld \
  --skip-grant-tables \
  --skip-networking \
  --socket=/run/mysqld/mysqld.sock &

#mysql 접속 
mysql --socket=/run/mysqld/mysqld.sock

#계정인증 복구 
UPDATE mysql.user
SET plugin = 'auth_socket',
    authentication_string = ''
WHERE user = 'root' AND host = 'localhost';

FLUSH PRIVILEGES;